{"id":"CVE-2026-89955","summary":"s390/vfio-ap: Fix NULL deref in status_show() during queue probe","details":"In the Linux kernel, the following vulnerability has been resolved:\n\ns390/vfio-ap: Fix NULL deref in status_show() during queue probe\n\nWhen vfio_ap_mdev_probe_queue() creates the sysfs attribute group,\nthe queue's driver data has not yet been set. A concurrent read of\nthe 'status' attribute can therefore call dev_get_drvdata() and\nget NULL, which is then passed directly to\nvfio_ap_mdev_for_queue() where q-\u003eapqn is unconditionally\ndereferenced, causing a NULL pointer dereference.\n\nFix this by acquiring the update locks before calling\nsysfs_create_group(). The status_show() function acquires\nguests_lock before reading the driver data, so any concurrent\nread will block until after dev_set_drvdata() has been called\nand the update locks are released.\n\nAs a bonus, the APQN no longer needs to be read from the queue\nstruct after allocation — it can be read directly from apdev\nbefore allocation and stored in a local variable, which is then\nassigned to q-\u003eapqn once the allocation succeeds.","modified":"2026-09-18T03:48:34.414952926Z","published":"2026-09-16T10:32:39.064Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89955.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/31fa0a8a3c337ed2d200166d6926ab23c14f8b2e"},{"type":"WEB","url":"https://git.kernel.org/stable/c/69632952aca04caa71e49953b6949fc04e788e67"},{"type":"WEB","url":"https://git.kernel.org/stable/c/7db2511fc601ca3a6e3fb1bdce02261c3c3167c3"},{"type":"WEB","url":"https://git.kernel.org/stable/c/dd6f4ef6f8a37412909ad787c837332fb070159c"},{"type":"WEB","url":"https://git.kernel.org/stable/c/e102ce0f4af99dff769a4b1b4daa4cc6bd5ad2d9"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89955.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89955"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"260f3ea141382386e97611e7c2029bc013088ab1"},{"fixed":"31fa0a8a3c337ed2d200166d6926ab23c14f8b2e"},{"fixed":"e102ce0f4af99dff769a4b1b4daa4cc6bd5ad2d9"},{"fixed":"69632952aca04caa71e49953b6949fc04e788e67"},{"fixed":"7db2511fc601ca3a6e3fb1bdce02261c3c3167c3"},{"fixed":"dd6f4ef6f8a37412909ad787c837332fb070159c"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89955.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.0.0"},{"fixed":"6.6.157"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.110"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.51"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.5"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-89955.json"}}],"schema_version":"1.9.0"}