CVE-2026-43287
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
May 8, 2026
CISA due date
—
Cloudanix analysis
A local user or program can abuse a Linux graphics feature to consume system memory and crash or severely disrupt the machine.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a local denial-of-service flaw in the Linux kernel Direct Rendering Manager subsystem. A low-privileged local user that can open a DRM device can repeatedly invoke DRM_IOCTL_MODE_CREATEPROPBLOB to allocate arbitrarily sized DRM property blobs in kernel memory. Before the fix, the backing allocation was not charged to the caller's memory cgroup, so cgroup memory limits did not constrain the kernel memory growth. This can lead to system-wide memory exhaustion, OOM kills, severe performance degradation, or a host crash. The fix accounts the allocation with GFP_KERNEL_ACCOUNT so existing memory cgroup limits apply.
Why it matters to the business
An attacker or compromised low-privileged account on a Linux system could intentionally exhaust kernel memory and disrupt workloads on the entire host, including unrelated services or containers. The risk is most relevant on multi-user systems, shared GPU/desktop hosts, CI workers, container hosts exposing DRM devices, and environments where untrusted code can access /dev/dri devices. The issue has a low EPSS score and is not listed in CISA KEV, so broad internet-scale exploitation is unlikely; however, the operational impact can be high where local code execution is already possible.
How an attack unfolds
An attacker first obtains local code execution as an unprivileged user on a vulnerable Linux system. They identify accessible DRM device nodes, typically under /dev/dri/, and open a device that accepts mode-setting DRM ioctls. The attacker then runs a loop that submits DRM_IOCTL_MODE_CREATEPROPBLOB requests with large blob sizes or many repeated allocations. Because the vulnerable kernel does not charge the blob data allocation to the attacker's memory cgroup, normal cgroup memory limits may not stop the growth. Kernel memory consumption rises until the system invokes the OOM killer, kills unrelated processes, becomes unstable, or crashes. Successful exploitation does not provide code execution or data theft by itself, but it can be used to disrupt service availability or as part of a broader intrusion to cover activity or degrade monitoring.
How to fix it
Apply a Linux kernel update from the distribution or kernel vendor that includes the DRM fix to account property blob allocations to memory cgroups, commonly associated with the upstream change titled "drm: Account property blob allocations to memcg". Because no exact fixed versions were provided, use vendor advisories and package changelogs to identify the first corrected kernel build for each supported distribution. Reboot into the patched kernel after installation; updating the package alone is not sufficient if the running kernel remains vulnerable. As temporary mitigations, restrict access to DRM device nodes to trusted users only, avoid exposing /dev/dri devices to untrusted containers, remove unnecessary GPU/device passthrough, enforce least-privilege group membership for video/render-related groups, and use host-level monitoring or resource isolation to detect abnormal kernel memory pressure. These mitigations reduce exposure but do not fully correct the accounting bug.
How to confirm the fix worked
Confirm the running kernel, not only the installed package, contains the fix. Validate through vendor package metadata, kernel changelogs, or source inspection showing DRM property blob data allocations are performed with GFP_KERNEL_ACCOUNT or equivalent memcg-accounted allocation behavior. On Linux systems, compare `uname -r` against the vendor-fixed kernel version and verify the host has been rebooted into that kernel. Review permissions on /dev/dri/card* and /dev/dri/renderD* and confirm untrusted users or containers do not have unnecessary access. Where safe in a controlled test environment, exercise DRM property blob creation inside a memory-limited cgroup and confirm memory consumption is charged and constrained rather than causing unbounded host-wide kernel memory growth.
Typical attack path
- Gain local code execution as a low-privileged user, through login access, a compromised service account, a container workload, or another vulnerability.
- Check for accessible DRM device nodes such as /dev/dri/card0 or other /dev/dri/card* entries.
- Open an accessible DRM device file from user space.
- Repeatedly call DRM_IOCTL_MODE_CREATEPROPBLOB with large property blob allocations.
- Bypass effective cgroup memory containment because the vulnerable allocation is not charged to the caller's memory cgroup.
- Drive kernel memory pressure until OOM killer activity, service termination, system instability, or host crash occurs.
How to detect it
Look for evidence of prior local denial-of-service activity rather than remote network indicators. Relevant sources include kernel logs, system journal entries, auditd logs, endpoint telemetry, process accounting, container runtime logs, and crash dumps. Search for OOM killer events, host-wide memory exhaustion, unexplained termination of unrelated services, kernel panics, or repeated instability coinciding with activity from low-privileged users or containers that accessed /dev/dri devices. If auditd or eBPF telemetry is available, review ioctl-heavy processes opening /dev/dri/card* and issuing DRM mode-setting calls, especially processes that are short-lived, unrecognized, or launched from temporary directories. In container environments, correlate host OOM events with containers that had GPU or DRM device passthrough. Absence of specific logs does not prove absence of exploitation, because the exploit may only leave generic memory-pressure and OOM artifacts unless device access or ioctl activity was being audited.
- DRM_IOCTL_MODE_CREATEPROPBLOB
- /dev/dri/card
- /dev/dri/renderD
- Out of memory: Killed process
- invoked oom-killer
- oom-kill:constraint=CONSTRAINT_NONE
- oom-kill:constraint=CONSTRAINT_MEMCG
- Memory cgroup out of memory
- Kernel panic - not syncing: System is deadlocked on memory
- drm_mode_createblob_ioctl
- CREATEPROPBLOB
What your security team should do
- Prioritize patching shared Linux hosts, container platforms, VDI/desktop systems, GPU-enabled servers, CI runners, and multi-user systems where untrusted users or workloads can access /dev/dri devices.
- Inventory systems exposing DRM devices and identify users, groups, containers, or services with access to /dev/dri/card* and /dev/dri/renderD*.
- Apply vendor kernel updates containing the DRM memcg accounting fix and reboot systems into the corrected kernel.
- Temporarily remove unnecessary DRM/GPU device access from untrusted containers and workloads until patched.
- Tighten membership in video, render, or distribution-specific device access groups to only trusted accounts.
- Monitor for OOM killer events, sudden kernel memory growth, repeated crashes, or abnormal ioctl activity against /dev/dri devices.
- Treat unexpected local DoS activity as a potential sign of broader compromise and investigate the account, container, or process responsible.
- Because this issue is not in CISA KEV and has low EPSS, schedule broad fleet remediation through normal kernel patch cycles, but accelerate remediation for exposed multi-tenant or untrusted-code environments.
The record
In the Linux kernel, the following vulnerability has been resolved: drm: Account property blob allocations to memcg DRM_IOCTL_MODE_CREATEPROPBLOB allows userspace to allocate arbitrary-sized property blobs backed by kernel memory. Currently, the blob data allocation is not accounted to the allocating process's memory cgroup, allowing unprivileged users to trigger unbounded kernel memory consumption and potentially cause system-wide OOM. Mark the property blob data allocation with GFP_KERNEL_ACCOUNT so that the memory is properly charged to the caller's memcg. This ensures existing cgroup memory limits apply and prevents uncontrolled kernel memory growth without introducing additional policy or per-file limits.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-109278 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the… CWE-401
- CVE-2026-109270 ImageMagick before 7.1.2-32 contains a memory leak vulnerability in the -process option… CWE-401
- CVE-2026-109262 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the SVG… CWE-401
- CVE-2026-109263 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the YUV… CWE-401
- CVE-2026-109261 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the GIF… CWE-401
- CVE-2026-109260 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the PNG… CWE-401
- CVE-2026-104874 Multidict is an implementation of a multidict data structure. CWE-401
- CVE-2026-98162 In the Linux kernel, the following vulnerability has been resolved: smb/server: fix tree… CWE-401