CVE-2026-98520
drm/amdkfd: fix use-after-free and multi-container gap in kfd_dev_mapping
No exploitation reported by the sources we read.
- Published2026-10-18
Am I affected?
Debian, Ubuntu or Red Hat sometimes backport a fix without changing the upstream version number: such a version reads « to verify », never « affected ».With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.
Description
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: fix use-after-free and multi-container gap in kfd_dev_mapping kfd_dev_mapping caches the address_space of the first /dev/kfd opener so that the GPU reset path can call unmap_mapping_range() to zap all userspace mappings of doorbell and MMIO ranges. This design has two bugs that both manifest under SRIOV with multiple containers: 1. Use-after-free / rwsem deadlock. The cached pointer refers to an inode owned by the first opener's container. When that container exits and its inode is released, kfd_dev_mapping becomes a dangling pointer. A subsequent GPU reset dereferences it inside unmap_mapping_range(), which takes i_mmap_rwsem on the freed inode, causing a hard hang observable as an uninterruptible rwsem wait. 2. Multi-container gap. Only the first opener's address_space is cached; VMAs created by later openers live in a different address_space and are never reached by unmap_mapping_range(). After a GPU reset those stale mappings keep doorbell and MMIO pages accessible to guest userspace with no GPU behind them, risking PCIe transaction timeouts and NMI panics. Fix both bugs with the same approach used by DRM core (drm_drv.c): create a private pseudo-filesystem at module init time and allocate one anonymous inode from it. In kfd_open() redirect every opener's file->f_mapping to that inode's address_space. The inode is module-owned, lives exactly as long as the amdgpu module, and collects VMAs from all openers in one address_space. A single unmap_mapping_range() call in the reset path then correctly reaches every container's mappings with no dangling pointer risk. The hang manifests as an NMI backtrace on the GPU reset workqueue stuck spinning in rwsem_down_read_slowpath() with a corrupted i_mmap_rwsem: Workqueue: amdgpu-reset-dev xgpu_ai_mailbox_flr_work [amdgpu] Call Trace: <TASK> kvm_wait+0x1f/0x40 __pv_queued_spin_lock_slowpath+0x31d/0x3a0 _raw_spin_lock_irq+0x51/0x80 rwsem_down_read_slowpath+0xb3/0x550 down_read+0x48/0xd0 unmap_mapping_range+0x71/0x140 kfd_dev_unmap_mapping_range+0x5b/0x140 [amdgpu] amdgpu_amdkfd_clear_kfd_mapping+0xd8/0x190 [amdgpu] amdgpu_device_gpu_recover+0x232/0x450 [amdgpu] xgpu_ai_mailbox_flr_work+0xb5/0xc0 [amdgpu] process_one_work+0x18e/0x3e0 worker_thread+0x2e3/0x420 kthread+0x10a/0x230 (cherry picked from commit 1128b4a52de1572e87431de837fd9850cb99542c)
Timeline
dates in UTC- 2026-10-1816:17CVE publishedNVD
Observed activity
isMalicious corpus · updated 2026-10-24 15:37 UTCBlock these indicators
- Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2026-98520?format=txt
- CSV export: https://api.ismalicious.com/edl/cve/CVE-2026-98520?format=csv
- TAXII collection of exploited CVEs
- The EDL and CSV take an API key on the Pro plan.
Versions per branch
Distribution builds and vendor advisories
Packages from OSV.dev and products from the vendors' CSAF advisories.
version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.
Vendor advisories
kernel: drm/amdkfd: fix use-after-free and multi-container gap in kfd_dev_mapping
kernel as a component of Red Hat Enterprise Linux 6 · kernel-abi-whitelists as a component of Red Hat Enterprise Linux 6 · kernel-bootwrapper as a component of Red Hat Enterprise Linux 6 · +11 more
Fix
- No fix planned, says the vendor Red Hat Product Security CVE-2026-98520 · 14 productsOut of support scope
Detection
- Nuclei template
- none so far ProjectDiscovery
- Exploit-DB
- no entry Exploit-DB
- Proof-of-concept repositories
- none listed PoC-in-GitHub
Sources
- NVDCVE recordread 2026-10-24
- CNACVSS 3.17.8read 2026-10-24
- FIRST EPSSEPSS score0.2 %2026-10-23
Technical details
- CVSS v3 Vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Published
- 2026-10-18
- Last Modified
- 2026-10-24
- NVD status
- Received
Frequently asked questions
What is CVE-2026-98520?
Is CVE-2026-98520 actively exploited?
What is the CVSS score for CVE-2026-98520?
Running Linux kernel? Hear about its next vulnerability
Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».
No credit card required · No monthly cap on website lookups · 250 API requests/month
Go further
- Following what attackers exploit right now? The CISA KEV additions of the month, with their patch deadlines.
- Running this software? Vulnerability monitoring alerts you to new vulnerabilities in your products.
Related vulnerabilities
Same product first, then the same vendor advisory and the same publication week.
- CVE-2026-104935KEVsame week
- CVE-2026-76519KEVsame weekCisco Secure Email Gateway Arbitrary File Write Vulnerability
- CVE-2026-96951KEVsame weekWindows Shell Security Feature Bypass Vulnerability
- CVE-2026-110447KEVsame week
- CVE-2026-0322KEVsame weekPAN-OS: Authenticated Remote Code Execution (RCE) in the Management Interface
- CVE-2026-102764KEVsame weekImproper Origin Validation in Internal Messaging Components of BeyondTrust Remote Support
- CVE-2026-106931KEVsame week
- CVE-2026-110936KEVsame week