CVE-2026-68236 Overview
CVE-2026-68236 is a use-after-free vulnerability in the Linux kernel's AMD GPU display driver (drm/amd/display). The flaw resides in dm_update_crtc_state(), where the skip_modeset path releases new_stream via dc_stream_release() without setting the pointer to NULL. A subsequent error, such as a color management failure, jumps to the fail label and calls dc_stream_release() again on the same dangling pointer. This double release can corrupt reference-counted stream state and lead to use-after-free conditions on affected systems.
Critical Impact
A local, low-privileged attacker triggering a display-mode error path can achieve memory corruption in kernel space, enabling privilege escalation or denial of service.
Affected Products
- Linux kernel builds including the AMD display driver (drm/amd/display) prior to the fix cherry-picked from commit 99f3af19073b3ddbfd96e789124cce12c4277b28
- Distributions shipping vulnerable stable branches referenced in the upstream kernel.org commits
- Systems using AMD GPUs with the amdgpu kernel module loaded
Discovery Timeline
- 2026-08-10 - CVE-2026-68236 published to NVD
- 2026-08-13 - Last updated in NVD database
Technical Details for CVE-2026-68236
Vulnerability Analysis
The vulnerability exists in the atomic modeset logic of the AMD display manager. When dm_update_crtc_state() executes the skip_modeset code path, it calls dc_stream_release() on the new_stream pointer to drop its reference. The function does not zero the pointer after release, leaving a dangling reference in local state.
Execution can later reach the fail label through several error conditions, most notably color management setup failures during the same call. The cleanup at the fail label invokes dc_stream_release() a second time on the identical pointer. This decrements the reference count on freed or reused memory and triggers classic use-after-free semantics on the stream object.
The upstream fix assigns NULL to new_stream immediately after the initial release, ensuring the error path release becomes a no-op on the stale reference.
Root Cause
The root cause is missing pointer sanitization after resource release. Kernel reference-counted objects require their tracking pointers to be cleared once a release call is issued, otherwise later cleanup paths may reoperate on freed objects.
Attack Vector
Exploitation requires local access with the ability to invoke DRM ioctls against /dev/dri/card*. An attacker crafts atomic commit requests that exercise the skip_modeset path and force color management failure to reach the vulnerable error handler. Successful exploitation corrupts kernel memory tied to struct dc_stream_state, providing a foothold for privilege escalation.
No verified public proof-of-concept exists. See the upstream fix commit for the exact patched code path.
Detection Methods for CVE-2026-68236
Indicators of Compromise
- Kernel oops, BUG:, or KASAN: use-after-free reports referencing dc_stream_release or dm_update_crtc_state in dmesg
- Unexpected crashes or GPU hangs on systems running vulnerable amdgpu builds during display reconfiguration
- Unprivileged processes making high-frequency DRM_IOCTL_MODE_ATOMIC calls that trigger color management errors
Detection Strategies
- Enable KASAN on test kernels to surface double-free and use-after-free events in drm/amd/display code paths
- Compare running kernel versions against the fixed stable branches listed in the kernel.org commits for CVE-2026-68236
- Alert on repeated kernel exceptions originating from the amdgpu module across the fleet
Monitoring Recommendations
- Ship kernel logs and crash telemetry into a centralized data lake and correlate on dc_stream_release stack frames
- Track patch state of the Linux kernel across endpoints and servers using inventory data
- Monitor for unusual local process behavior invoking DRM ioctls, particularly from non-graphical user sessions
How to Mitigate CVE-2026-68236
Immediate Actions Required
- Apply the vendor-supplied kernel update that includes commit 99f3af19073b3ddbfd96e789124cce12c4277b28 or the equivalent stable-branch backport
- Prioritize patching multi-user Linux systems with AMD GPUs, where local attackers are most likely to exist
- Reboot systems after kernel installation to load the fixed amdgpu module
Patch Information
Upstream fixes are available across multiple stable branches. Reference the following commits: Commit 0676fecb, Commit 5182e442, Commit 679f23f0, Commit 9fa26b9e, and Commit ba8bf1dc. Consume the fix through your distribution's kernel package where available.
Workarounds
- Restrict access to DRM device nodes (/dev/dri/card*) to trusted users via group membership and udev rules
- Where feasible on servers that do not require graphical output, blacklist or unload the amdgpu module until patched
- Enforce least privilege on local accounts to reduce the pool of users capable of invoking the vulnerable ioctl path
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

