HIGH
iommu/amd CompletionWait Lockup
CVE-2026-43253
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
KernelScan AI5.4MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: iommu/amd: move wait_on_sem() out of spinlock With iommu.strict=1, the existing completion wait path can cause soft lockups under stressed environment, as wait_on_sem() busy-waits under the spinlock with interrupts disabled. Move the completion wait in iommu_completion_wait() out of the spinlock. wait_on_sem() only polls the hardware-updated cmd_sem and does not require iommu->lock, so holding the lock during the busy wait unnecessarily increases contention and extends the time with interrupts disabled.
02KernelScan AI Analysis
Risk summary
Systems with AMD IOMMU hardware running with iommu.strict=1 can experience soft lockups under high I/O load. This affects system availability but does not compromise confidentiality or integrity.
Vulnerability analysis
The root cause is improper lock ordering in the AMD IOMMU completion wait path. The wait_on_sem() function performs a busy-wait loop while holding a spinlock with interrupts disabled, which can cause soft lockups under stress when iommu.strict=1 is enabled. The fix moves the completion wait outside the spinlock, reducing lock contention and preventing extended periods with interrupts disabled. This is a local availability issue requiring low privileges to trigger through I/O operations.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.12 | 6.12.75 | 715c263119fd |
| 6.18 | 6.18.16 | e15768e68820 |
| 6.19 | 6.19.6 | 496269d12072 |
| 6.6 | 6.6.128 | f2f65b28d802 |
| mainline | 7.0 | d2a0cac10597 |