KernelScan.io

CRITICAL Introduced in 2.6.33

vt-d ACS Bypass

CVE-2026-89448

CVSS 9.3 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

KernelScan AI6.8MEDIUM

01

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().

02

Engine v0.6.0

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.

Affecteddrivers/iommu/intel/dmar.c (Intel VT-d IOMMU)

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.

03

BranchIntroducedFixed inPatch commit
6.62.6.336.6.157579eb867d3da
mainline2.6.337.3-rc1607432b2618b
6.182.6.336.18.5045705a6bfdb2
7.22.6.337.2.487bc611c6c98
6.122.6.336.12.109aaeb81241e80
cip/6.122.6.336.12.111-cip32aaeb81241e80