HIGH 8.8

CVE-2026-53281: Linux VT-d IOMMU NULL Pointer Dereference and Refcount Corruption

A flaw in the Linux kernel's Intel VT-d IOMMU (Input/Output Memory Management Unit) driver can cause a crash or memory corruption when certain PASID (Process Address Space ID) teardown operations are performed incorrectly. The vulnerability stems from code that attempts to clean up device-PASID associations even when no valid association exists, leading to either dereferencing a NULL pointer or corrupting internal reference counts. This could allow a local attacker with basic user privileges to cause a denial of service or potentially escalate to higher impact by exploiting the memory corruption.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Weaknesses (CWE)
CWE-476
Affected products
4 configuration(s)
Published / Modified
2026-06-26 / 2026-07-29

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Avoid NULL pointer dereference or refcount corruption Commit 60f030f7418d ("iommu/vt-d: Avoid use of NULL after WARN_ON_ONCE") fixed a NULL pointer dereference in an unlikely situation partly. If dev_pasid is not found in the dev_pasids list, it remains NULL. However, the teardown operations are executed unconditionally, this lead to a NULL pointer dereference or refcount corruption. If the domain was never attached to this IOMMU, info will be NULL, which would cause an immediate dereference when checking --info->refcnt. Even if info is not NULL, decrementing the refcount without having removed a valid PASID might unbalance the count. This could lead to premature dropping of the refcount to 0, potentially causing a use-after-free for the remaining active devices sharing the domain. Fix it by returning early if dev_pasid is NULL, before executing the teardown operations. Issue found by AI review and suggested by Kevin Tian. https://sashiko.dev/#/patchset/20260421031347.1408890-1-zhenzhong.duan%40intel.com

8 reference(s) · View on NVD →

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

Technical summary

CVE-2026-53281 is a NULL pointer dereference and refcount corruption vulnerability in the Linux kernel's iommu/vt-d subsystem. The issue occurs in PASID (Process Address Space ID) lifecycle management when a dev_pasid structure cannot be found in the dev_pasids list during detachment. Prior mitigation (commit 60f030f7418d) was incomplete: it warned but did not prevent unconditional execution of teardown operations. If dev_pasid lookup fails and returns NULL, the code proceeds to decrement info->refcnt without validation, causing either immediate NULL dereference or refcount underflow. If the domain was never attached to the specific IOMMU instance, info itself is NULL, guaranteeing a crash on dereference. Even when info is valid, premature refcount decrementation can unbalance reference counts, leading to use-after-free conditions for other active devices sharing the same domain. The fix requires an early return if dev_pasid is NULL, preventing execution of teardown logic on invalid state.

Business impact

This vulnerability affects system stability and multi-tenant security on Linux systems using Intel VT-d IOMMU for device virtualization or privileged isolation. A local attacker (non-root user) can trigger a kernel panic, causing denial of service across all workloads on the system. In virtualized environments, a guest operating system with unprivileged user access could crash the host kernel, affecting all co-located tenants. The memory corruption aspects create potential for privilege escalation or information disclosure, depending on the kernel's memory safety hardening posture. Organizations relying on Linux with VT-d for container orchestration, hypervisor deployments, or high-availability systems should prioritize patching.

Affected systems

The vulnerability affects all Linux kernel versions implementing the iommu/vt-d subsystem with PASID support. Based on the patchset metadata, mainline and stable kernel series containing the affected code are impacted. Systems relying on Intel IOMMU hardware features (common in data centers, cloud platforms, and enterprise virtualization) are at risk. Embedded systems and IoT devices without VT-d support or PASID configuration are unaffected. The vulnerability requires local access to the affected system; remote exploitation is not possible.

Exploitability

Exploitability is moderate to high. An attacker requires local access and unprivileged user-level code execution—a capability present in multi-user systems, containers, and VMs. No special credentials, kernel module loading, or IOMMU-specific knowledge is required; the vulnerability can be triggered through normal PASID attach/detach sequences via IOMMU-aware user-space libraries or through specific system call patterns. The crash is deterministic and reliable. However, the kernel must be compiled with IOMMU VT-d and PASID support enabled, which is not universal across all Linux distributions or configurations. Weaponized exploit code would be straightforward to develop but requires targeting specific kernel versions and configurations.

Remediation

Remediation requires updating to a Linux kernel version that includes the fix for this vulnerability. The fix is a logical safeguard: adding an early return in the PASID detachment path if dev_pasid is NULL, preventing execution of teardown operations on invalid state. This is a minimal, non-invasive patch. Organizations should apply patches to their kernel baseline and redeploy or reboot systems. For systems unable to update immediately, restricting local user access or disabling VT-d IOMMU features (if not required) reduces exposure, though these are temporary measures. Verify patch application by checking kernel version logs and testing IOMMU-dependent workloads post-deployment.

Patch guidance

Obtain patches from your Linux distribution's security advisory or the upstream Linux kernel repository. Verify against the vendor advisory from the distribution (Red Hat, Ubuntu, Debian, SUSE, etc.) to confirm the patch version and applicability to your kernel series. The upstream fix is in the patchset referenced: https://sashiko.dev/#/patchset/20260421031347.1408890-1-zhenzhong.duan%40intel.com. Test patches in a non-production environment first, particularly on systems with IOMMU workloads (VMs, containers, GPU passthrough). Schedule reboots to activate kernel updates during maintenance windows. For LTS (Long-Term Support) kernels, patches may lag upstream; check your distribution's security tracking portal for ETA.

Detection guidance

Monitor kernel logs for IOMMU-related panics or warnings (dmesg | grep -i iommu, dmesg | grep -i vt-d). Look for NULL pointer dereference backtraces involving functions in drivers/iommu/intel-svm.c or related PASID handling code. Capture kernel version from uname -r and cross-reference against published CVE advisories. Systems using IOMMU passthrough for VMs or containers may log detachment warnings; correlate timing with application restarts or VM lifecycle events. Performance monitoring tools may detect unexpected system restarts or uptime gaps following IOMMU operations. No user-space indicators are directly observable; detection is kernel-centric.

Why prioritize this

This vulnerability merits HIGH priority for organizations operating Linux on Intel platforms with IOMMU enabled. The combination of reliable local exploitability, HIGH CVSS score (8.8), and potential for both denial of service and memory corruption makes it a critical patch target. Virtualization platforms, Kubernetes clusters, and multi-tenant systems should prioritize patching within 1-2 weeks. Systems not using VT-d or PASID features can be deprioritized, but verification of actual kernel configuration is essential before deferral. The lack of KEV/CISA inclusion does not diminish risk; it reflects recent disclosure rather than coordinated exploitation.

Risk score, explained

The CVSS 3.1 score of 8.8 (HIGH) reflects: Attack Vector (Local)—no network path, but users with shell access can trigger the flaw; Attack Complexity (Low)—no race conditions or special timing required; Privileges Required (Low)—standard user account suffices; User Interaction (None)—fully automated; Scope (Changed)—the IOMMU impact can affect other processes and domains sharing the same hardware resource; Confidentiality (High)—memory corruption can leak kernel memory; Integrity (High)—refcount corruption allows uncontrolled memory operations; Availability (High)—denial of service via kernel panic is immediate. The score appropriately captures the severity for systems where local privilege escalation and container escape are consequential threats.

Frequently asked questions

Does this vulnerability affect my system if I haven't explicitly enabled IOMMU or VT-d in my kernel configuration?

No. This vulnerability requires both kernel support for Intel VT-d IOMMU and PASID (Process Address Space ID) features to be compiled in and enabled. Check your running kernel with cat /proc/cmdline (look for intel_iommu=on) and dmesg | grep -i 'iommu abled'. If VT-d is not enabled, you are not affected. However, verify your actual configuration rather than assuming defaults.

Can this vulnerability be exploited remotely or does it require direct system access?

Direct local access is required. An attacker must have the ability to execute code on the target system (e.g., via SSH, a container, or unprivileged user account). Remote code execution vulnerabilities that chain to this flaw are a separate concern. Standalone remote network exploitation of CVE-2026-53281 is not possible.

What is the difference between this CVE and the earlier fix in commit 60f030f7418d?

The earlier commit added a WARN_ON_ONCE() to flag NULL cases but did not prevent the vulnerable teardown code from executing afterward. This CVE addresses the incomplete fix by ensuring that teardown operations are skipped entirely if dev_pasid is NULL, preventing both NULL dereference and refcount corruption.

If I update my kernel, do I need to reconfigure my IOMMU settings or retest my virtualization workloads?

A kernel reboot is required to activate the patch. Your IOMMU configuration and workload settings do not need to change. However, it is recommended to test IOMMU-dependent workloads (VMs, containers with device passthrough) in a staging environment to ensure stability after the update before deploying to production.

This analysis is based on publicly disclosed vulnerability data as of the publication date. CVSS scores and severity ratings reflect the vendor's assessment and may not represent all possible attack scenarios or organizational risk context. Patch availability, version numbers, and timelines vary by Linux distribution; verify against your vendor's security advisory for accurate patch guidance. This explainer does not constitute legal, compliance, or investment advice. Organizations should conduct their own vulnerability assessment, including inventory verification of affected systems and business criticality analysis, before prioritizing patches. Proof-of-concept code, if publicly released, should be treated as a heightened risk indicator and may accelerate patching timelines. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).