CVE-2026-45894CWE-362

CVE-2026-45894

High · published May 27, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
1.5
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

iommu/vt-d: Clear Present bit before tearing down PASID entry

The Intel VT-d Scalable Mode PASID table entry consists of 512 bits (64

bytes). When tearing down an entry, the current implementation zeros the

entire 64-byte structure immediately using multiple 64-bit writes.

Since the IOMMU hardware may fetch these 64 bytes using multiple

internal transactions (e.g., four 128-bit bursts), updating or zeroing

the entire entry while it is active (P=1) risks a "torn" read. If a

hardware fetch occurs simultaneously with the CPU zeroing the entry, the

hardware could observe an inconsistent state, leading to unpredictable

behavior or spurious faults.

Follow the "Guidance to Software for Invalidations" in the VT-d spec

(Section 6.5.3.3) by implementing the recommended ownership handshake:

1. Clear only the 'Present' (P) bit of the PASID entry.

2. Use a dma_wmb() to ensure the cleared bit is visible to hardware

before proceeding.

3. Execute the required invalidation sequence (PASID cache, IOTLB, and

Device-TLB flush) to ensure the hardware has released all cached

references.

4. Only after the flushes are complete, zero out the remaining fields

of the PASID entry.

Also, add a dma_wmb() in pasid_set_present() to ensure that all other

fields of the PASID entry are visible to the hardware before the Present

bit is set.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00115 · 1.5th percentile
Weakness
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Published
2026-05-27T18:17Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 5.0, < 6.12.756.12.75
linux/linux_kernel≥ 6.13, < 6.18.146.18.14
linux/linux_kernel≥ 6.19, < 6.19.46.19.4
References (5)
EPSS history
Timeline
  • 27 MAY 12:17Z
    iommu/vt-d: Clear Present bit before tearing down PASID entry
    cvelistv5