CVE-2024-56669: iommu/vt-d: Remove cache tags before disabling ATS
In the Linux kernel, the following vulnerability has been resolved:
iommu/vt-d: Remove cache tags before disabling ATS
The current implementation removes cache tags after disabling ATS,
leading to potential memory leaks and kernel crashes. Specifically,
CACHE_TAG_DEVTLB type cache tags may still remain in the list even
after the domain is freed, causing a use-after-free condition.
This issue really shows up when multiple VFs from different PFs
passed through to a single user-space process via vfio-pci. In such
cases, the kernel may crash with kernel messages like:
BUG: kernel NULL pointer dereference, address: 0000000000000014
PGD 19036a067 P4D 1940a3067 PUD 136c9b067 PMD 0
Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 74 UID: 0 PID: 3183 Comm: testCli Not tainted 6.11.9 #2
RIP: 0010:cache_tag_flush_range+0x9b/0x250
Call Trace:
<TASK>
? __die+0x1f/0x60
? page_fault_oops+0x163/0x590
? exc_page_fault+0x72/0x190
? asm_exc_page_fault+0x22/0x30
? cache_tag_flush_range+0x9b/0x250
? cache_tag_flush_range+0x5d/0x250
intel_iommu_tlb_sync+0x29/0x40
intel_iommu_unmap_pages+0xfe/0x160
__iommu_unmap+0xd8/0x1a0
vfio_unmap_unpin+0x182/0x340 [vfio_iommu_type1]
vfio_remove_dma+0x2a/0xb0 [vfio_iommu_type1]
vfio_iommu_type1_ioctl+0xafa/0x18e0 [vfio_iommu_type1]
Move cache_tag_unassign_domain() before iommu_disable_pci_caps() to fix
it.
Security readout for executives and security teams
Plain-English summary
A Linux kernel flaw can leave stale I/O memory-management records after virtual devices are detached. In affected Intel VT-d and VFIO environments, this may cause memory leakage, use-after-free behavior, or a host kernel crash. Systems passing multiple virtual functions from different physical devices to one user-space process appear most exposed.
Executive priority
Prioritize virtualization hosts using VFIO passthrough, especially multi-device workloads matching the documented topology. A kernel crash could disrupt hosted services. Patch through normal emergency change controls where exposure is confirmed; other Linux systems can follow risk-based maintenance after configuration validation.
Technical view
Cache tags are removed after Address Translation Services are disabled. CACHE_TAG_DEVTLB entries can therefore survive domain release and later reference freed memory. The documented trigger involves multiple VFs from different PFs assigned through vfio-pci to one process. The fix moves cache_tag_unassign_domain() before iommu_disable_pci_caps().
Likely exposure
Exposure is concentrated in affected Linux kernels using Intel VT-d, ATS, and vfio-pci device passthrough. The supplied record lists Linux 6.10, 6.12.6, and 6.13-related affected version data, but its exact range boundaries are unclear. Ordinary hosts without this virtualization configuration are less likely to encounter the documented condition.
Exploitation context
The CVSS vector describes a local, low-privilege path requiring no user interaction. The supplied sources document crashes in a specific VFIO configuration, but provide no evidence of active exploitation; the CVE is not listed as KEV. Practical security impact beyond denial of service is not established by the bundle.
Researcher notes
The source supports CWE-416 and a faulty cleanup ordering involving DEVTLB cache tags. It demonstrates a crash path during VFIO DMA unmapping, not reliable confidentiality or integrity compromise. Exact affected-version boundaries and distribution backport status require vendor confirmation. No public exploitation evidence is included.
Mitigation direction
Upgrade to a vendor-supported kernel containing the applicable referenced stable fix.
Confirm the distribution backport with the Linux or operating-system vendor.
If patching is delayed, review whether the documented multi-PF VFIO topology can be temporarily limited.
Follow vendor guidance for any branch-specific mitigation or package version.
Validation and detection
Record kernel versions on hosts using Intel VT-d, ATS, or vfio-pci passthrough.
Identify processes receiving multiple VFs originating from different physical functions.
Verify the deployed kernel contains the applicable stable commit or documented vendor backport.
Review kernel logs for cache_tag_flush_range faults, NULL dereferences, or VFIO unmap crashes.
Regression-test VFIO device teardown and DMA unmapping after updating.
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.
2CVSS vectors
3Timeline events
1ADP providers
3Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
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.