Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-98520— drm/amdkfd: fix use-after-free and multi-container gap in kfd_dev_mapping

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 Linux 内核中,以下漏洞已得到修复: drm/amdkfd:修复 kfd_dev_mapping 中的释放后使用(use-after-free)及多容器间隙问题 会缓存第一个打开 设备的进程的 ,以便在 GPU 重置路径中调用 来清除所有用户空间对门铃(doorbell)和 MMIO 区域的映射。该设计在 SR-IOV 环境下存在多个容器时,会引发以下两个问题: 1. 释放后使用 / rwsem 死锁:缓存的指针指向由第一个打开者所属容器拥有的 inode。当该容器退出且其 inode 被释放后, 便成为一

CVSS 7.8 · High EPSS 0.17% · P6

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 70cadefcc6160c575b04f763ada34c20e868d577< 02b74891624e09a5512c6d84f267d01fcc306a3b affected
70cadefcc6160c575b04f763ada34c20e868d577< c3a31087b1c8df679b653c1a09d9abe5ff7ec8ef affected
7.2 affected
< 7.2 unaffected
7.2.9≤ 7.2.* unaffected
7.3≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-98520

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
drm/amdkfd: fix use-after-free and multi-container gap in kfd_dev_mapping
Source: CVE Program / CVE List V5
Vulnerability 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)
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 70cadefcc6160c575b04f763ada34c20e868d577 ~ 02b74891624e09a5512c6d84f267d01fcc306a3b -
Linux Linux 7.2 -

II. Public POCs for CVE-2026-98520

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-98520

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-98520 (2)

Same Patch Batch · Linux · 2026-10-18 · 435 CVEs total

CVE-2026-98548 9.8 CRITICAL sctp: discard the rest of the packet on a stale-cookie error
CVE-2026-98490 9.8 CRITICAL net: openvswitch: conntrack: fix helper UAF due to extensions realloc
CVE-2026-98464 9.3 CRITICAL RISC-V: KVM: Synchronize hrtimer callback during teardown
CVE-2026-98549 9.1 CRITICAL tcp: prevent collapsing skbs across boundary in rtx queue
CVE-2026-98451 8.8 HIGH smb: client: use finish_no_open() for non-regular inodes
CVE-2026-98466 8.2 HIGH KVM: arm64: Transfer the hyp stack pages out of the host stage-2
CVE-2026-98532 8.1 HIGH ipv6: do not let ipv6_find_hdr() return an offset past the packet end
CVE-2026-98454 8.1 HIGH smb: client: fix create context out-of-bounds reads
CVE-2026-98499 8.1 HIGH HID: wacom: fix OOB read in wacom_wac_pen_serial_enforce()
CVE-2026-98443 7.8 HIGH xfs: fix cursor and pointer handling when recovering iunlink buckets
CVE-2026-98436 7.8 HIGH accel/amdxdna: Disable device buffer exporting
CVE-2026-98507 7.8 HIGH mm/rmap: fix missing barrier between anon_vma init and vma->anon_vma publish
CVE-2026-98442 7.8 HIGH net/sched: act_ct: fix helper UAF due to extensions realloc
CVE-2026-98524 7.8 HIGH rds: ib: Clear the sg list when mapping an MR fails
CVE-2026-98487 7.8 HIGH net: bridge: mdb: restart port group walk after deletion
CVE-2026-98517 7.8 HIGH drm/nouveau/uvmm: fix UAF in nouveau_uvmm_sm when BO is in TTM_PL_SYSTEM
CVE-2026-98515 7.8 HIGH drm/nouveau: fix double-free in nvif_vmm_dtor
CVE-2026-98441 7.8 HIGH net/sched: act_ct: avoid modifying shared unconfirmed ct entry
CVE-2026-98491 7.8 HIGH net: openvswitch: conntrack: avoid modifying shared unconfirmed ct entry
CVE-2026-98510 7.8 HIGH drm/xe/vm: nuke PTs only after unlinking contested VMAs

Showing top 20 of 435 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities