iommu: disable SVA when CONFIG_X86 is set
Affects Linux kernels from 5.2.0 onward that use IOMMU Shared Virtual Addressing (SVA) on builds with CONFIG_X86 set. Fixed in 5.15.200, 6.1.163, 6.6.120, 6.12.64, and 6.18.4 by branch. No vendor severity rating is given.
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Fix
- Fixed in 5.15.200, 6.1.163, 6.6.120, 6.12.64, 6.18.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: iommu: disable SVA when CONFIG_X86 is set Patch series "Fix stale IOTLB entries for kernel address space", v7. This proposes a fix for a security vulnerability related to IOMMU Shared Virtual Addressing (SVA). In an SVA context, an IOMMU can cache kernel page table entries. When a kernel page table page is freed and reallocated for another purpose, the IOMMU might still hold stale, incorrect entries. This can be exploited to cause a use-after-free or write-after-free condition, potentially leading to privilege escalation or data corruption. This solution introduces a deferred freeing mechanism for kernel page table pages, which provides a safe window to notify the IOMMU to invalidate its caches before the page is reused. This patch (of 8): In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware shares and walks the CPU's page tables. The x86 architecture maps the kernel's virtual address space into the upper portion of every process's page table. Consequently, in an SVA context, the IOMMU hardware can walk and cache kernel page table entries. The Linux kernel currently lacks a notification mechanism for kernel page table changes, specifically when page table pages are freed and reused. The IOMMU driver is only notified of changes to user virtual address mappings. This can cause the IOMMU's internal caches to retain stale entries for kernel VA. Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when kernel page table pages are freed and later reallocated. The IOMMU could misinterpret the new data as valid page table entries. The IOMMU might then walk into attacker-controlled memory, leading to arbitrary physical memory DMA access or privilege escalation. This is also a Write-After-Free issue, as the IOMMU will potentially continue to write Accessed and Dirty bits to the freed memory while attempting to walk the stale page tables. Currently, SVA contexts are unprivileged and cannot access kernel mappings. However, the IOMMU will still walk kernel-only page tables all the way down to the leaf entries, where it realizes the mapping is for the kernel and errors out. This means the IOMMU still caches these intermediate page table entries, making the described vulnerability a real concern. Disable SVA on x86 architecture until the IOMMU can receive notification to flush the paging cache before freeing the CPU kernel page table pages.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
5.2
- KernelLinux
From 5.2.0 · fixed in 5.15.200; From 5.16.0 · fixed in 6.1.163; From 6.2.0 · fixed in 6.6.120; From 6.7.0 · fixed in 6.12.64; From 6.13.0 · fixed in 6.18.4
References 7
git.kernel.org
- stable/c/845875f4c6788c88e2334fe5825934821decbdc8
- stable/c/b34289505180a83607fcfdce14b5a290d0528476
- stable/c/7cad37e358970af1bb49030ff01f06a69fa7d985
- stable/c/240cd7f2812cc25496b12063d11c823618f364e9
- stable/c/c2c3f1a3fd74ef16cf115f0c558616a13a8471b4
- stable/c/c341dee80b5df49a936182341b36395c831c2661
- stable/c/72f98ef9a4be30d2a60136dd6faee376f780d06c
Questions about CVE-2025-71089
What does this mean?
In the IOMMU Shared Virtual Addressing context, the IOMMU hardware can allow DMA access to arbitrary physical memory. The bug also involves use-after-free and write-after-free of kernel page table pages, which can lead to privilege escalation or data corruption.Source: git.kernel.org
Am I affected, and how do I check?
Linux kernel versions from 5.2.0 up to the fixed release for each branch are in scope, and only where SVA is in use on a kernel built with CONFIG_X86. To check, run uname -r for the kernel version and look for CONFIG_X86 in the build config, such as /boot/config-$(uname -r).Source: git.kernel.org
What should I do about it?
Move to the fixed release for the branch in use: 5.15.200, 6.1.163, 6.6.120, 6.12.64, or 6.18.4. The fix disables SVA when CONFIG_X86 is set.Source: git.kernel.org
Is it being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data