UBUNTU-CVE-2025-71089
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.
02 / AFFECTED SOFTWARE
Affected packages
11 explicit affected versions
53 explicit affected versions
116 explicit affected versions
86 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
19 explicit affected versions
10 explicit affected versions
6 explicit affected versions
96 explicit affected versions
58 explicit affected versions
24 explicit affected versions
81 explicit affected versions
82 explicit affected versions
91 explicit affected versions
83 explicit affected versions
75 explicit affected versions
10 explicit affected versions
32 explicit affected versions
26 explicit affected versions
88 explicit affected versions
7 explicit affected versions
83 explicit affected versions
35 explicit affected versions
13 explicit affected versions
39 explicit affected versions
35 explicit affected versions
48 explicit affected versions
46 explicit affected versions
18 explicit affected versions
39 explicit affected versions
64 explicit affected versions
40 explicit affected versions
120 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
47 explicit affected versions
124 explicit affected versions
1 explicit affected versions
21 explicit affected versions
9 explicit affected versions
16 explicit affected versions
10 explicit affected versions
15 explicit affected versions
76 explicit affected versions
43 explicit affected versions
8 explicit affected versions
7 explicit affected versions
12 explicit affected versions
11 explicit affected versions
7 explicit affected versions
12 explicit affected versions
14 explicit affected versions
10 explicit affected versions
1 explicit affected versions
7 explicit affected versions
11 explicit affected versions
104 explicit affected versions
12 explicit affected versions
4 explicit affected versions
105 explicit affected versions
12 explicit affected versions
36 explicit affected versions
42 explicit affected versions
16 explicit affected versions
12 explicit affected versions
25 explicit affected versions
29 explicit affected versions
10 explicit affected versions
37 explicit affected versions
10 explicit affected versions
4 explicit affected versions
13 explicit affected versions
35 explicit affected versions
3 explicit affected versions
10 explicit affected versions
11 explicit affected versions
64 explicit affected versions
1 explicit affected versions
26 explicit affected versions
6 explicit affected versions
13 explicit affected versions
33 explicit affected versions
29 explicit affected versions
111 explicit affected versions
13 explicit affected versions
12 explicit affected versions
94 explicit affected versions
36 explicit affected versions
36 explicit affected versions
3 explicit affected versions
100 explicit affected versions
88 explicit affected versions
51 explicit affected versions
33 explicit affected versions
23 explicit affected versions
57 explicit affected versions
10 explicit affected versions
15 explicit affected versions
14 explicit affected versions
11 explicit affected versions
5 explicit affected versions
12 explicit affected versions
4 explicit affected versions
7 explicit affected versions
12 explicit affected versions
3 explicit affected versions
11 explicit affected versions
5 explicit affected versions
73 explicit affected versions
89 explicit affected versions
10 explicit affected versions
26 explicit affected versions
34 explicit affected versions
1 explicit affected versions
65 explicit affected versions
30 explicit affected versions
42 explicit affected versions
11 explicit affected versions
4 explicit affected versions
13 explicit affected versions
41 explicit affected versions
78 explicit affected versions
16 explicit affected versions
87 explicit affected versions
45 explicit affected versions
3 explicit affected versions
132 explicit affected versions
1 explicit affected versions
7 explicit affected versions
2 explicit affected versions
10 explicit affected versions
51 explicit affected versions
11 explicit affected versions
18 explicit affected versions
37 explicit affected versions
12 explicit affected versions
69 explicit affected versions
76 explicit affected versions
27 explicit affected versions
62 explicit affected versions
121 explicit affected versions
1 explicit affected versions
38 explicit affected versions
8 explicit affected versions
53 explicit affected versions
5 explicit affected versions
8 explicit affected versions
1 explicit affected versions
10 explicit affected versions
7 explicit affected versions
41 explicit affected versions
13 explicit affected versions
110 explicit affected versions
13 explicit affected versions
72 explicit affected versions
7 explicit affected versions
8 explicit affected versions
10 explicit affected versions
12 explicit affected versions
9 explicit affected versions
35 explicit affected versions
108 explicit affected versions
80 explicit affected versions
56 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
26 explicit affected versions
45 explicit affected versions
37 explicit affected versions
46 explicit affected versions
14 explicit affected versions
38 explicit affected versions
9 explicit affected versions
12 explicit affected versions
11 explicit affected versions
34 explicit affected versions
15 explicit affected versions
10 explicit affected versions
89 explicit affected versions
8 explicit affected versions
7 explicit affected versions
4 explicit affected versions
78 explicit affected versions
3 explicit affected versions
1 explicit affected versions
1 explicit affected versions
1 explicit affected versions
87 explicit affected versions
77 explicit affected versions
77 explicit affected versions
13 explicit affected versions
43 explicit affected versions
77 explicit affected versions
9 explicit affected versions
119 explicit affected versions
5 explicit affected versions
10 explicit affected versions
8 explicit affected versions
40 explicit affected versions
88 explicit affected versions
14 explicit affected versions
4 explicit affected versions
78 explicit affected versions
9 explicit affected versions
11 explicit affected versions
1 explicit affected versions
123 explicit affected versions
14 explicit affected versions
34 explicit affected versions
76 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
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.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/72f98ef9a4be30d2a60136dd6faee376f780d06c
- https://git.kernel.org/stable/c/240cd7f2812cc25496b12063d11c823618f364e9
- https://git.kernel.org/stable/c/72f98ef9a4be30d2a60136dd6faee376f780d06c
- https://git.kernel.org/stable/c/c2c3f1a3fd74ef16cf115f0c558616a13a8471b4
- https://git.kernel.org/stable/c/c341dee80b5df49a936182341b36395c831c2661
- https://ubuntu.com/security/CVE-2025-71089
- https://ubuntu.com/security/notices/USN-8177-1
- https://ubuntu.com/security/notices/USN-8177-2
- https://ubuntu.com/security/notices/USN-8179-1
- https://ubuntu.com/security/notices/USN-8179-2
- https://ubuntu.com/security/notices/USN-8179-3
- https://ubuntu.com/security/notices/USN-8179-4
- https://ubuntu.com/security/notices/USN-8183-1
- https://ubuntu.com/security/notices/USN-8183-2
- https://ubuntu.com/security/notices/USN-8184-1
- https://ubuntu.com/security/notices/USN-8185-1
- https://ubuntu.com/security/notices/USN-8185-2
- https://ubuntu.com/security/notices/USN-8203-1
- https://ubuntu.com/security/notices/USN-8204-1
- https://ubuntu.com/security/notices/USN-8245-1
- https://ubuntu.com/security/notices/USN-8257-1
- https://ubuntu.com/security/notices/USN-8258-1
- https://ubuntu.com/security/notices/USN-8260-1
- https://ubuntu.com/security/notices/USN-8261-1
- https://ubuntu.com/security/notices/USN-8265-1
- https://ubuntu.com/security/notices/USN-8440-1
- https://ubuntu.com/security/notices/USN-8493-1
- https://ubuntu.com/security/notices/USN-8493-2
- https://ubuntu.com/security/notices/USN-8527-1
- https://ubuntu.com/security/notices/USN-8528-1
- https://ubuntu.com/security/notices/USN-8547-1
- https://ubuntu.com/security/notices/USN-8547-2
- https://www.cve.org/CVERecord?id=CVE-2025-71089