KernelScan.io

HIGH Introduced in 4.5

drm/vc4 ShaderBO Bypass

CVE-2026-68445

CVSS 7.5 / 10.0 KernelScan AI

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Prevent shader BO mappings from becoming writable vc4_gem_object_mmap() rejects a writable mapping of a validated shader BO, but leaves VM_MAYWRITE set. Userspace can map the BO read-only and then turn it writable with mprotect(). Validated shader BOs must stay read-only: the validator checks the instructions once and the GPU trusts them afterwards. A writable mapping lets userspace rewrite the code after validation, bypassing the validator. Clear VM_MAYWRITE on the read-only path so the mapping cannot be upgraded, as i915 already does for its read-only objects.

02

Engine v0.6.0

Risk summary

A local user with access to the vc4 DRM device (Raspberry Pi GPU) can bypass the kernel's shader validator by mapping a validated shader buffer object read-only and then upgrading it to writable with a memory-protection system call. This allows execution of arbitrary GPU shader code capable of DMA reads and writes to system memory the user does not control, leading to potential information disclosure, data corruption, or denial of service.

Affecteddrivers/gpu/drm/vc4/vc4_bo.c (drm/vc4)

Vulnerability analysis

The vc4 graphics driver checks GPU shader code for safety when a shader buffer is first created, then trusts that check for all later GPU execution. When userspace asks to map one of these buffers, the driver refuses direct writable mappings, but it still leaves open the possibility of upgrading the mapping to writable later. A user can therefore request a read-only mapping and then promote it to writable using standard memory protection calls, rewriting shader instructions after the safety check has already passed. This bypasses the validator that is meant to prevent shaders from performing unrestricted direct memory access to system memory. The fix removes the upgrade permission so a read-only mapping stays read-only permanently, matching how another graphics driver handles similar objects. Any local user with access to the vc4 graphics device can trigger this; on Raspberry Pi systems this device is typically available to members of the video group without requiring administrator privileges.

03

BranchIntroducedFixed inPatch commit
6.124.56.12.101019e6ad247f7
6.184.56.18.426deaa3172018
6.64.56.6.1489f0ee411fc2d
7.14.57.1.6fe168ef1d232
mainline4.57.2-rc50c9e63676395