CVE-2026-31781
Medium · 5.5CVSS
5.5
EPSS
0.1%
Published
May 1, 2026
CISA due date
—
Cloudanix analysis
A local user on some Linux systems may be able to misuse the graphics driver interface in a way that can disrupt the system, so affected machines should receive a kernel update.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
This vulnerability affects the Linux kernel Direct Rendering Manager (DRM) 32-bit compatibility ioctl path. A local, low-privileged user can supply an index that is used to access a table of function pointers; without speculation hardening, the CPU may transiently access an out-of-bounds function-pointer table entry. The upstream fix constrains the index with array_index_nospec(), preventing Spectre-style speculative execution from using attacker-controlled indexes on this path. The assigned impact emphasizes local availability risk, although the code pattern is also characteristic of speculative-execution hardening issues.
Why it matters to the business
Systems that expose DRM devices to local users, desktop sessions, GPU workloads, containers with GPU passthrough, or multi-user Linux environments may be at risk from a local user causing kernel instability or exploiting speculative behavior in the graphics ioctl interface. Because exploitation requires local privileges and no public exploit is known, broad internet-facing risk is low; however, shared Linux hosts and GPU-enabled platforms should prioritize kernel updates to reduce tenant-to-tenant and user-to-system risk.
How an attack unfolds
An attacker first obtains local code execution as an unprivileged user on a vulnerable Linux system. They then interact with DRM device nodes such as graphics or render devices and issue crafted 32-bit compatibility ioctl calls that influence the index used on the DRM compat ioctl dispatch path. On vulnerable kernels, the attacker-controlled index can be used during speculative execution before architectural bounds checks fully take effect, creating an unsafe speculative access pattern through a function-pointer table. Depending on platform behavior and surrounding mitigations, this may result in denial of service or provide a primitive useful in a broader local attack chain. The vulnerability is not known to be exploited in the wild, is not in CISA KEV, and currently has very low EPSS likelihood with no observed 30-day increase.
How to fix it
Upgrade to a Linux kernel build that includes the upstream DRM compat ioctl speculation hardening change using array_index_nospec() on the function-pointer table index. No exact fixed package versions were provided, so use vendor-specific advisories for the relevant distribution or appliance and install the latest security kernel update. Reboot into the patched kernel after installation; simply installing the package is not sufficient if the running kernel remains vulnerable. Where immediate patching is not possible, reduce exposure by limiting local shell access, restricting access to /dev/dri devices, disabling unnecessary GPU passthrough into containers or virtualized workloads, and applying standard kernel hardening and speculative-execution mitigations recommended by the OS vendor.
How to confirm the fix worked
Confirm the running kernel version, not only the installed package version, using commands such as uname -r and vendor package tools. Verify through the distribution changelog, security advisory, or kernel source that the DRM compat ioctl fix containing array_index_nospec() has been backported. Check that systems were rebooted after kernel update and that no older vulnerable kernel remains active. For exposure validation, identify systems with DRM enabled and accessible /dev/dri device nodes, especially multi-user workstations, GPU compute hosts, and containers or virtual machines with GPU device passthrough.
Typical attack path
- Gain local access to a vulnerable Linux system as a low-privileged user.
- Confirm access to DRM device nodes, commonly under /dev/dri/.
- Run code that opens a DRM device and sends crafted 32-bit compatibility ioctl requests.
- Trigger the vulnerable drm_compat_ioctl path with attacker-controlled indexes.
- Abuse the speculative function-pointer table access pattern to destabilize the kernel or support a broader local exploitation chain.
How to detect it
This issue is difficult to confirm retrospectively because exploitation occurs through local kernel ioctl activity and may not leave unique artifacts. Review authentication, process execution, auditd, eBPF, EDR, and kernel logs for untrusted users running unusual binaries that open DRM device nodes under /dev/dri/ and issue high volumes of ioctl calls. Look for unexplained kernel crashes, GPU driver faults, soft lockups, oops messages, or system reboots occurring after local user activity. If audit rules exist for device access, investigate processes opening /dev/dri/card*, /dev/dri/renderD*, or /dev/dri/controlD* followed by abnormal termination, privilege-boundary probing, or system instability. There are no named threat actors or known ransomware campaigns associated with this vulnerability, and no public exploit maturity has been reported.
What your security team should do
- Prioritize patching shared Linux systems, GPU-enabled servers, VDI hosts, developer workstations, and multi-user environments where untrusted users can run local code.
- Track vendor kernel advisories and deploy the first available kernel build that contains the DRM compat ioctl array_index_nospec() hardening fix.
- Reboot systems after patch deployment and verify the running kernel has changed.
- Restrict access to /dev/dri devices to only users and services that require GPU functionality.
- Review container and virtualization configurations for unnecessary GPU passthrough or overly broad device access.
- Monitor for unusual local ioctl activity against DRM devices where audit or eBPF telemetry is available, recognizing that reliable post-exploitation indicators may be limited.
- Do not treat the low EPSS and lack of KEV listing as a reason to ignore the issue on shared or GPU-accessible Linux platforms.
The record
In the Linux kernel, the following vulnerability has been resolved: drm/ioc32: stop speculation on the drm_compat_ioctl path The drm compat ioctl path takes a user controlled pointer, and then dereferences it into a table of function pointers, the signature method of spectre problems. Fix this up by calling array_index_nospec() on the index to the function pointer list.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|