CVE-2026-89955

s390/vfio-ap: Fix NULL deref in status_show() during queue probe

State
Published
Severity
Not scored
Published
Sep 16, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

s390/vfio-ap: Fix NULL deref in status_show() during queue probe

When vfio_ap_mdev_probe_queue() creates the sysfs attribute group, the queue's driver data has not yet been set. A concurrent read of the 'status' attribute can therefore call dev_get_drvdata() and get NULL, which is then passed directly to vfio_ap_mdev_for_queue() where q->apqn is unconditionally dereferenced, causing a NULL pointer dereference.

Fix this by acquiring the update locks before calling sysfs_create_group(). The status_show() function acquires guests_lock before reading the driver data, so any concurrent read will block until after dev_set_drvdata() has been called and the update locks are released.

As a bonus, the APQN no longer needs to be read from the queue struct after allocation — it can be read directly from apdev before allocation and stored in a local variable, which is then assigned to q->apqn once the allocation succeeds.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 260f3ea141382386e97611e7c2029bc013088ab1 to before 10606c9af18baed75cd180b96ee695441aa15134Affected
  • 260f3ea141382386e97611e7c2029bc013088ab1 to before 31fa0a8a3c337ed2d200166d6926ab23c14f8b2eAffected
  • 260f3ea141382386e97611e7c2029bc013088ab1 to before e102ce0f4af99dff769a4b1b4daa4cc6bd5ad2d9Affected
  • 260f3ea141382386e97611e7c2029bc013088ab1 to before 69632952aca04caa71e49953b6949fc04e788e67Affected
  • 260f3ea141382386e97611e7c2029bc013088ab1 to before 7db2511fc601ca3a6e3fb1bdce02261c3c3167c3Affected
  • 260f3ea141382386e97611e7c2029bc013088ab1 to before dd6f4ef6f8a37412909ad787c837332fb070159cAffected
LinuxLinux
  • 6.0Affected
  • before 6.0Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.51 through 6.18.*Not affected
  • 7.2.5 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.