HIGH 7.1

CVE-2026-52953: Linux Kernel VT-d IOMMU Out-of-Bounds Access Vulnerability

A flaw in the Linux kernel's IOMMU (Input/Output Memory Management Unit) VT-d driver can crash a system when certain device assignment operations occur, particularly when QEMU virtual machines are terminated. The issue arises from the kernel trying to access memory beyond the bounds of a special internal structure called the 'blocked domain,' causing a protection fault that halts the affected process or system. This is a memory safety issue specific to how the kernel manages I/O device permissions and virtual machine configurations.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.1 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weaknesses (CWE)
CWE-125
Affected products
4 configuration(s)
Published / Modified
2026-06-24 / 2026-07-14

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Fix oops due to out of scope access Below oops triggers when kill QEMU process: Oops: general protection fault, probably for non-canonical address 0x7fffffff844eaaa7: 0000 [#1] SMP NOPTI Call Trace: <TASK> do_raw_spin_lock+0xaa/0xc0 _raw_spin_lock_irqsave+0x21/0x40 domain_remove_dev_pasid+0x52/0x160 intel_nested_set_dev_pasid+0x1b9/0x1e0 __iommu_set_group_pasid+0x56/0x120 pci_dev_reset_iommu_done+0xe3/0x180 pcie_flr+0x65/0x160 __pci_reset_function_locked+0x5b/0x120 vfio_pci_core_close_device+0x63/0xe0 [vfio_pci_core] vfio_df_close+0x4f/0xa0 vfio_df_unbind_iommufd+0x2d/0x60 vfio_device_fops_release+0x3e/0x40 __fput+0xe5/0x2c0 task_work_run+0x58/0xa0 do_exit+0x2c8/0x600 do_group_exit+0x2f/0xa0 get_signal+0x863/0x8c0 arch_do_signal_or_restart+0x24/0x100 exit_to_user_mode_loop+0x87/0x380 do_syscall_64+0x2ff/0x11e0 entry_SYSCALL_64_after_hwframe+0x76/0x7e The global static blocked domain is a dummy domain without corresponding dmar_domain structure, accessing beyond iommu_domain structure triggers oops easily. Fix it by return early in domain_remove_dev_pasid() like identity domain.

3 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-52953 is an out-of-bounds access vulnerability in the iommu/vt-d subsystem of the Linux kernel. The vulnerability occurs in the domain_remove_dev_pasid() function when handling a global static blocked domain—a dummy domain object lacking a corresponding dmar_domain structure. During device PASID (Process Address Space ID) teardown, the code attempts to dereference fields beyond the legitimate iommu_domain structure, triggering a general protection fault on non-canonical memory addresses. The crash path is triggered by VFIO device unbinding and PCI function-level reset operations that invoke intel_nested_set_dev_pasid(), which calls domain_remove_dev_pasid() without proper boundary checking for the blocked domain special case.

Business impact

Systems running affected Linux kernel versions face potential denial of service when terminating QEMU-based virtual machines or performing device assignment/reset operations. In environments using KVM/QEMU for virtualization, guest shutdown can unexpectedly crash the hypervisor host. This risk is most acute for data centers, cloud platforms, and organizations heavily reliant on Linux-based virtualization. The crash may corrupt running workloads or require manual system recovery. The impact is localized to environments actively using VT-d device assignment; standard workloads without passthrough device configurations are unaffected.

Affected systems

The vulnerability affects Linux kernel installations with VT-d IOMMU support enabled and VFIO device assignment in use. Primary affected scenarios include KVM/QEMU hypervisor hosts performing virtual device passthrough, particularly when guests are shut down or devices are reset. Specific kernel versions are not enumerated in the source data; however, the fix was resolved upstream, so distributions with recent kernel updates are patched. Verify your kernel version against the vendor advisory to determine exposure.

Exploitability

Exploitation requires local access to the affected system and the ability to trigger VFIO device unbinding or QEMU process termination—actions typically available to privileged users or VM administrators. The vulnerability cannot be exploited remotely. Triggering the crash is straightforward for an authenticated local attacker with appropriate permissions, but the impact is limited to denial of service rather than privilege escalation or data theft. The kernel maintains CVSS 3.1 score of 7.1 (HIGH) due to the requirement for local/privileged access coupled with the availability impact.

Remediation

Apply kernel patches addressing the iommu/vt-d domain handling. The fix follows the pattern already implemented for identity domain handling: return early from domain_remove_dev_pasid() when processing the blocked domain, preventing out-of-bounds memory access. Update to a patched kernel version supplied by your Linux distribution. Verify the specific patch version and kernel build against your vendor's security advisory. For organizations unable to patch immediately, restrict VFIO device assignment and KVM device passthrough until updates are deployed.

Patch guidance

Consult your Linux distribution's (Red Hat, Ubuntu, Debian, SUSE, etc.) security advisories for patched kernel versions. The upstream Linux kernel fix has been merged; distributions backport kernel security patches at different rates. Check your vendor's kernel release notes and apply the latest stable kernel update for your distribution and architecture. Verify that the patch addresses domain_remove_dev_pasid() early-return logic for blocked domain handling. Test patches in a staging environment before production deployment, especially if VT-d device assignment is in use.

Detection guidance

Monitor system logs for general protection faults and kernel oops messages, particularly in syslog or kernel messages coinciding with QEMU shutdown or VFIO device unbind operations. Stack traces containing domain_remove_dev_pasid() or intel_nested_set_dev_pasid() in the call chain indicate exposure. Systems without VT-d enabled or without VFIO device assignment features in use are not at risk and do not require monitoring. Runtime detection is reactive; proactive kernel updates remain the primary mitigation.

Why prioritize this

Assign HIGH priority to patching in any environment running KVM/QEMU with VT-d device passthrough or SR-IOV configurations. Prioritize patching on hypervisor hosts before guest systems. Organizations without device assignment enabled can deprioritize relative to other kernel vulnerabilities, but should still patch as part of regular security maintenance. The local-only attack vector and denial-of-service impact make this less urgent than remote code execution flaws, but the operational severity in virtualized environments elevates its relative risk.

Risk score, explained

The CVSS 3.1 score of 7.1 reflects a HIGH-severity vulnerability with local attack vector (AV:L), low attack complexity (AC:L), and low privilege requirement (PR:L). The vector indicates no impact to confidentiality (C:N) but high impact to integrity and availability (I:H, A:H). The kernel panic and system instability cause direct availability damage. The local/privileged access requirement substantially lowers the score compared to remotely exploitable flaws; however, the high availability and integrity impact within scope elevates it to HIGH severity.

Frequently asked questions

Does this affect my Linux system if I'm not using QEMU or device passthrough?

No. This vulnerability only impacts systems actively using VFIO device assignment with KVM/QEMU or SR-IOV configurations. Standard Linux workloads without device passthrough are unaffected. Check if VT-d IOMMU and VFIO drivers are loaded and in active use; if not, your risk is minimal.

Can this vulnerability be exploited remotely?

No. Exploitation requires local access and the ability to trigger device assignment or VM shutdown operations, typically available only to privileged users or VM administrators. Remote exploitation is not possible.

What is the difference between this blocked domain issue and the identity domain handling mentioned in the fix?

The blocked domain and identity domain are both special internal domains in the VT-d driver. The identity domain already had proper early-exit handling in domain_remove_dev_pasid(). The blocked domain lacked this protection, causing out-of-bounds access. The fix extends the same early-exit pattern to the blocked domain case.

Will patching require a system reboot?

Yes. Kernel patches require a reboot to take effect. Plan patching during scheduled maintenance windows. If you are running affected workloads (hypervisors with device passthrough), test the patched kernel in a staging environment before production deployment to ensure no regressions.

This analysis is based on publicly disclosed vulnerability data as of the publication date. Patch version numbers and affected kernel versions should be verified against official vendor advisories and security bulletins from your Linux distribution. No exploit code or weaponized proof-of-concept is provided. Organizations should conduct their own risk assessments based on their specific kernel versions, configuration, and deployment scenarios. This information is provided for informational purposes to support security decision-making and should not be construed as legal or compliance advice. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).