CVE-2024-56669CWE-401CWE-416CWE-476

CVE-2024-56669

High · published December 27, 2024

CVSS v3.1
8.8
EPSS
0%
Percentile
10.9
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
8.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00212 · 10.9th percentile
Weaknesses
CWE-401 · Missing Release of Memory after Effective Lifetime; CWE-416 · Use After Free; CWE-476 · NULL Pointer Dereference
Published
2024-12-27T20:15Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 6.10, < 6.12.66.12.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (2)
EPSS history
Timeline
  • 27 DEC 15:06Z
    iommu/vt-d: Remove cache tags before disabling ATS
    cvelistv5