UBUNTU-CVE-2026-72328: Use After Free
In the Linux kernel, the following vulnerability has been resolved: accel/amdxdna: Fix potential amdxdnaumap lifetime race amdxdnaumaprelease() calls the blocking mmuintervalnotifierremove() before removing the object from abo->mem.umaplist. If aie2populaterange() runs concurrently, it may obtain a reference to an amdxdnaumap that is being released, leading to a potential use-after-free. Use krefgetunlesszero() in aie2populaterange() when acquiring a reference. If the reference count has already dropped to zero, release is in progress and the entry is skipped.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-aws-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1014.14~24.04.1 - Upgrade
Upgrade
ubuntu/linux-azure-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17~24.04.1 - Upgrade
Upgrade
ubuntu/linux-azure-fde-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1016.16~24.04.1 - Upgrade
Upgrade
ubuntu/linux-gcp-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1014.14~24.04.1 - Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-38.38~24.04.4 - Upgrade
Upgrade
ubuntu/linux-nvidia-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1024.25~24.04.1 - Upgrade
Upgrade
ubuntu/linux-oracle-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1013.13~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-38.38.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-38.38 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1014.14 - Upgrade
Upgrade
ubuntu/linux-azureto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-azure-fdeto a version that resolves this vulnerability.Fixed in 7.0.0-1016.16 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1014.14 - Upgrade
Upgrade
ubuntu/linux-gketo a version that resolves this vulnerability.Fixed in 7.0.0-1008.9 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1015.15 - Upgrade
Upgrade
ubuntu/linux-nvidia-bosto a version that resolves this vulnerability.Fixed in 7.0.0-2022.23 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1015.15 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1013.13 - Upgrade
Upgrade
ubuntu/linux-realtimeto a version that resolves this vulnerability.Fixed in 7.0.0-38.38.1 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-38.38.1 - Compensating control
Use kref_get_unless_zero() in aie2_populate_range() when acquiring an amdxdna_umap reference, so entries whose reference count has reached zero are skipped while release is in progress.
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
The affected Ubuntu kernel package set includes linux-riscv, linux-realtime, linux-hwe-edge, linux-azure, linux-gcp, linux-azure-fde, linux-gke, and linux-aws-5.0. The race is in the AMD XDNA accelerator driver path.
What conditions are needed to trigger the vulnerability?
A local attacker needs low privileges and must be able to cause aie2_populate_range() to run concurrently with amdxdna_umap_release(). The race can allow the populate path to retain a reference to an amdxdna_umap object while it is being released, potentially resulting in use-after-free.
What is the security impact if exploitation succeeds?
The reported vector rates the issue as high severity, with high impacts to confidentiality, integrity, and availability. Exploitation is local, requires low privileges, and does not require user interaction.
How does the fix prevent the race?
The fix uses kref_get_unless_zero() when aie2_populate_range() obtains an amdxdna_umap reference. If the reference count is already zero, indicating release is underway, the list entry is skipped rather than used.