CVE-2026-80582 Overview
CVE-2026-80582 is a Linux kernel vulnerability in the Direct Rendering Manager (DRM) shared memory helper (drm/shmem_helper). The ->huge_fault handler installs a Page Middle Directory (PMD) huge page mapping without verifying that the huge page fits within the Virtual Memory Area (VMA) boundaries. When the mapping exceeds the VMA, subsequent memory operations reach copy_pmd_range() and trigger a VM_BUG_ON_VMA() assertion. A local, low-privileged user can leverage the flaw to compromise kernel memory integrity, cause denial of service, or influence execution paths through the graphics subsystem.
Critical Impact
Local attackers with low privileges can trigger a kernel VM_BUG_ON_VMA() and induce out-of-bounds PMD mappings via the DRM shmem helper, affecting confidentiality, integrity, and availability.
Affected Products
- Linux kernel versions containing the affected drm/shmem_helper->huge_fault handler prior to the referenced fix commits
- Distributions shipping the affected upstream kernel component
- Systems using DRM shared memory buffer helpers for GPU memory mappings
Discovery Timeline
- 2026-08-26 - CVE-2026-80582 published to NVD
- 2026-08-27 - Last updated in NVD database
Technical Details for CVE-2026-80582
Vulnerability Analysis
The defect resides in the ->huge_fault handler of the DRM shared memory helper (drm/shmem_helper). The handler installs a PMD-sized huge page mapping without confirming that the target address range remains within the VMA. Other ->huge_fault handlers in the kernel perform this boundary check; the shmem helper omits it.
When a mapping extends beyond the VMA, the kernel's page table walker eventually traverses the offending region during operations such as fork() or memory unmapping. The walk reaches copy_pmd_range(), where the VM_BUG_ON_VMA() assertion fires. This behavior classifies the issue as a boundary condition error in kernel virtual memory handling.
Root Cause
The root cause is missing input validation on the fault address relative to the VMA extents inside the huge page fault path. The handler assumes the caller-supplied fault range aligns with a valid PMD-sized region inside the VMA. No explicit check compares haddr + PMD_SIZE against vma->vm_end, nor does it validate the lower boundary against vma->vm_start.
Attack Vector
Exploitation requires local access and the ability to mmap() a DRM shmem-backed buffer object. An attacker crafts a mapping whose alignment or size causes the fault handler to attempt a PMD mapping that crosses the VMA boundary. Triggering a subsequent fork() or page table operation invokes copy_pmd_range() and hits the VM_BUG_ON_VMA(), producing a kernel oops. Depending on kernel configuration, the resulting inconsistent page table state can be leveraged for further memory corruption. Technical details are available in the Kernel Git Commit 12803e89 and Kernel Git Commit 617bbd08.
// No verified proof-of-concept code is available for this CVE.
// See upstream commits for the exact patch hunks in drm_gem_shmem_helper.c.
Detection Methods for CVE-2026-80582
Indicators of Compromise
- Kernel log entries containing VM_BUG_ON_VMA originating from copy_pmd_range after DRM buffer access
- Unexpected kernel oops or panic traces referencing drm_gem_shmem symbols and huge fault handling
- Repeated crashes of processes that mmap() DRM shmem buffer objects on affected hosts
Detection Strategies
- Monitor dmesg and /var/log/kern.log for VM_BUG_ON_VMA warnings tied to DRM subsystem stack frames
- Track unprivileged processes opening /dev/dri/* device nodes and performing large or misaligned mmap() calls
- Correlate GPU userspace client crashes with kernel-side page fault errors to identify probing attempts
Monitoring Recommendations
- Ingest kernel ring buffer and audit logs into a centralized analytics platform for anomaly detection
- Alert on new local processes accessing DRM device files outside of expected graphics workloads
- Baseline kernel version inventory across Linux fleets and flag hosts still running vulnerable builds
How to Mitigate CVE-2026-80582
Immediate Actions Required
- Apply the upstream kernel patches referenced in Kernel Git Commit 12803e89 and Kernel Git Commit 617bbd08 once packaged by your distribution
- Restrict local shell and interactive access on multi-tenant systems until patched kernels are deployed
- Audit which users and services can open /dev/dri/* device nodes and remove unnecessary access
Patch Information
The fix adds explicit VMA boundary checks in the drm/shmem_helper->huge_fault handler so that a PMD mapping is not installed when the huge page would exceed the VMA. Track your distribution's security tracker for the specific kernel package versions incorporating the referenced stable commits.
Workarounds
- Limit DRM device file access to trusted user groups via udev rules and filesystem permissions on /dev/dri/renderD* and /dev/dri/card*
- Disable transparent huge pages for affected workloads where feasible to reduce the likelihood of PMD-level fault handling
- Isolate untrusted local workloads in virtual machines or containers with device access removed until patches are applied
# Verify running kernel version and DRM device permissions
uname -r
ls -l /dev/dri/
# Example: restrict render node access to the 'render' group only
chgrp render /dev/dri/renderD128
chmod 0660 /dev/dri/renderD128
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

