CVE-2024-35843: iommu/vt-d: Use device rbtree in iopf reporting path
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Use device rbtree in iopf reporting path
The existing I/O page fault handler currently locates the PCI device by
calling pci_get_domain_bus_and_slot(). This function searches the list
of all PCI devices until the desired device is found. To improve lookup
efficiency, replace it with device_rbtree_find() to search the device
within the probed device rbtree.
The I/O page fault is initiated by the device, which does not have any
synchronization mechanism with the software to ensure that the device
stays in the probed device tree. Theoretically, a device could be released
by the IOMMU subsystem after device_rbtree_find() and before
iopf_get_dev_fault_param(), which would cause a use-after-free problem.
Add a mutex to synchronize the I/O page fault reporting path and the IOMMU
release device path. This lock doesn't introduce any performance overhead,
as the conflict between I/O page fault reporting and device releasing is
very rare.
Security readout for executives and security teams
Plain-English summary
A race condition in Linux Intel VT-d I/O page-fault handling can access a device after its memory is released. Under the scored conditions, a local low-privileged attacker could potentially compromise confidentiality, integrity, and availability. The supplied evidence does not establish real-world exploitation.
Executive priority
Treat as a high-priority maintenance issue on virtualization hosts, device-passthrough systems, and multi-user Linux infrastructure. It is not supported as an emergency internet-wide threat because exploitation is local and unconfirmed. Patch promptly through supported vendor channels, with priority based on IOMMU usage and untrusted local access.
Technical view
CVE-2024-35843 is a CWE-416 use-after-free. A device may leave the probed-device tree after device_rbtree_find() but before iopf_get_dev_fault_param(). The resolution synchronizes I/O page-fault reporting and IOMMU device release with a mutex. CVSS 3.1 is 8.8: local access, low complexity, low privileges, no user interaction, and changed scope.
Likely exposure
Exposure requires Linux systems using the affected Intel VT-d IOMMU page-fault path and a device-release race. The bundle marks Linux affected and lists 6.1, 6.8.2, and 6.9, but its version data is ambiguous and does not provide reliable fixed-version boundaries. Confirm each deployed kernel against vendor guidance and the referenced stable commits.
Exploitation context
The CVSS vector indicates local, low-privileged access rather than remote exploitation. Triggering also depends on a narrow concurrency condition involving device-initiated page faults and IOMMU device release. The bundle reports KEV as false and supplies no evidence of active exploitation or a public exploit.
Researcher notes
The central issue is object lifetime across device_rbtree_find() and iopf_get_dev_fault_param(). Review synchronization coverage in the fault-reporting and release paths, including error handling. The supplied version representation is internally unclear, so avoid deriving precise vulnerable ranges from it. The two kernel stable commits are the strongest supplied remediation references.
Mitigation direction
Prioritize kernel updates containing the vendor's synchronization fix.
Check distribution advisories for exact affected and fixed package versions.
Restrict untrusted local access until affected systems are updated.
Review passthrough and device-management exposure on high-value virtualization hosts.
Validation and detection
Inventory kernel versions on systems using Intel VT-d or IOMMU features.
Compare installed kernels with vendor advisories and referenced stable commits.
Confirm updated kernels include synchronization between fault reporting and device release.
Reboot into the corrected kernel and verify the running version.
Monitor kernel logs for IOMMU faults, crashes, or device-release anomalies.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-416: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-416 · source CWE mapping
Use After Free
Use After Free represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.