HIGH Introduced in 4.5
drm/vc4 ShaderBO Bypass
CVE-2026-68445
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
01Description
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.
02KernelScan AI Analysis
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.
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.
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 4.5 | 6.12.101 | 019e6ad247f7 |
| 6.18 | 4.5 | 6.18.42 | 6deaa3172018 |
| 6.6 | 4.5 | 6.6.148 | 9f0ee411fc2d |
| 7.1 | 4.5 | 7.1.6 | fe168ef1d232 |
| mainline | 4.5 | 7.2-rc5 | 0c9e63676395 |