CRITICAL Introduced in 2.6.33
vt-d ACS Bypass
CVE-2026-89448
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
KernelScan AI6.8MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Force requesting ACS when tboot is enabled Currently the conditions of requesting ACS in detect_intel_iommu() don't include tboot, leading to a possible misconfiguration with ACS disabled (e.g. due to user opts) while iommu is later forced on by tboot_force_iommu(). Fix it by checking tboot in detect_intel_iommu().
02KernelScan AI Analysis
Risk summary
When Intel Trusted Boot (tboot) is enabled but the IOMMU was disabled by user options, the IOMMU is later forced on by tboot without ACS being requested. This leaves PCIe peer-to-peer DMA isolation disabled, allowing a malicious PCIe device to bypass IOMMU protections and access host memory directly. The issue requires specific Intel hardware with VT-d and TXT support, tboot enabled, and physical access to a PCIe slot.
Vulnerability analysis
When a system boots with Intel Trusted Boot (tboot), the IOMMU is forced on to provide DMA isolation for the trusted environment. However, the early detection code that decides whether to request PCI Access Control Services (ACS) did not check for tboot — it only checked standard IOMMU enable flags. If a user disabled the IOMMU via boot options, ACS was never requested, yet tboot later forced the IOMMU on anyway, leaving ACS disabled. Without ACS, PCIe devices can perform peer-to-peer DMA transactions that bypass IOMMU isolation, giving a malicious device direct access to host memory. The fix consolidates the IOMMU-required logic into a single helper that checks tboot first, ensuring ACS is always requested when tboot is active regardless of other options. This vulnerability is reachable only on Intel platforms with VT-d and TXT hardware, requires tboot to be enabled, and exploitation requires physical access to insert or compromise a PCIe device.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.6 | 2.6.33 | 6.6.157 | 579eb867d3da |
| mainline | 2.6.33 | 7.3-rc1 | 607432b2618b |
| 6.18 | 2.6.33 | 6.18.50 | 45705a6bfdb2 |
| 7.2 | 2.6.33 | 7.2.4 | 87bc611c6c98 |
| 6.12 | 2.6.33 | 6.12.109 | aaeb81241e80 |
| cip/6.12 | 2.6.33 | 6.12.111-cip32 | aaeb81241e80 |