CVE-2026-68303 Overview
CVE-2026-68303 is a null pointer dereference vulnerability in the Linux kernel's drm/vc4 graphics driver stack. The flaw affects the vc4_hvs_unbind and vc4_v3d_unbind functions used by the Broadcom VideoCore IV (VC4) DRM components on platforms such as the Raspberry Pi. During driver teardown, both unbind handlers call dev_get_drvdata(master) on the vc4-drm master device. Because vc4-drm is removed before its dependent vc4_hvs and vc4_v3d drivers, the master's driver data is already freed. The resulting access to freed memory produces a null dereference in kernel context.
Critical Impact
Local unbind operations on affected VC4 DRM drivers trigger a kernel-mode null pointer dereference, causing a denial of service on Linux systems that use the VC4 graphics stack.
Affected Products
- Linux kernel drm/vc4 driver (vc4-drm)
- Linux kernel vc4_hvs component (Hardware Video Scaler)
- Linux kernel vc4_v3d component (VideoCore 3D)
Discovery Timeline
- 2026-08-10 - CVE-2026-68303 published to NVD
- 2026-08-10 - Last updated in NVD database
Technical Details for CVE-2026-68303
Vulnerability Analysis
The VC4 DRM stack registers a master device (vc4-drm) with two component drivers, vc4_hvs and vc4_v3d. The Linux component framework binds these together at initialization time and calls each component's unbind handler during teardown. Both vc4_hvs_unbind and vc4_v3d_unbind retrieve driver-private state by calling dev_get_drvdata(master) on the master vc4-drm device.
The teardown ordering causes the master vc4-drm device to be removed before its component drivers finish unbinding. Once vc4-drm is gone, its associated driver data is no longer valid. When vc4_hvs_unbind or vc4_v3d_unbind subsequently invokes dev_get_drvdata(master), it dereferences a stale or null pointer, panicking the kernel or logging an oops.
The upstream fix replaces the dev_get_drvdata(master) call with the data pointer that the component framework already passes into the unbind callback. This avoids any dependency on the lifetime of the master device's driver data.
Root Cause
The root cause is a lifetime mismatch between the vc4-drm master device and its component drivers during removal. The unbind handlers assume the master's driver data outlives the components, but the actual removal order reverses that assumption. This is a classic use-after-free style null pointer dereference triggered by incorrect object lifetime handling in kernel driver teardown [CWE-476].
Attack Vector
Triggering the flaw requires local operations that unbind the vc4 DRM driver, such as module unload, device tree reconfiguration, or system shutdown paths on systems using VC4 graphics. The impact is limited to denial of service through a kernel crash. There is no known path to code execution or privilege escalation from this specific dereference.
No verified public exploit code is available. See the kernel fix commit 261f0a3 and kernel fix commit 7dc3680b for the exact code change.
Detection Methods for CVE-2026-68303
Indicators of Compromise
- Kernel oops or panic messages referencing vc4_hvs_unbind or vc4_v3d_unbind in dmesg or /var/log/kern.log.
- Null pointer dereference stack traces that include dev_get_drvdata frames within the vc4 DRM component path.
- Unexpected crashes during graphics driver module unload or system shutdown on VC4-based hardware such as Raspberry Pi devices.
Detection Strategies
- Inventory Linux hosts running VC4 graphics drivers and correlate their kernel versions against the fixed commits 261f0a3 and 7dc3680b.
- Monitor kernel logs for oops signatures involving vc4_hvs or vc4_v3d unbind paths, which indicate the flaw is being triggered.
- Use configuration management tooling to flag systems where the vc4 DRM module is loaded but the kernel package predates the fix.
Monitoring Recommendations
- Forward dmesg and syslog kernel events into a centralized log platform and alert on BUG:, Oops:, and NULL pointer dereference entries.
- Track kernel package versions across the Linux fleet and flag deviations from the patched baseline.
- Watch for repeated unexpected reboots on VC4-based edge devices, which can indicate the crash path is being exercised in production.
How to Mitigate CVE-2026-68303
Immediate Actions Required
- Apply the upstream kernel patches referenced by commits 261f0a3f0ac03248284f5116d3258f89c9642215 and 7dc3680b7ffe01add3e9299fde8471d2dd53a8ae, or upgrade to a stable Linux kernel release that includes them.
- Prioritize systems using VC4 graphics, particularly Raspberry Pi devices and other Broadcom VideoCore IV platforms.
- Reboot patched systems to ensure the fixed kernel and DRM modules are active.
Patch Information
The fix modifies vc4_hvs_unbind and vc4_v3d_unbind to use the data argument passed by the component framework instead of calling dev_get_drvdata(master). The change is available in the mainline Linux kernel and backported stable branches. Refer to kernel commit 261f0a3 and kernel commit 7dc3680b for full patch content and applicable stable versions.
Workarounds
- Avoid unbinding or unloading the vc4, vc4_hvs, and vc4_v3d kernel modules on unpatched systems.
- Restrict local access on affected devices so that unprivileged users cannot invoke driver teardown paths.
- On systems that do not require VC4 graphics, disable the driver in the kernel configuration or device tree until patched kernels are deployed.
# Verify installed kernel and check for the vc4 DRM modules
uname -r
lsmod | grep -E 'vc4|vc4_hvs|vc4_v3d'
# Search kernel logs for signs of the null dereference
dmesg | grep -Ei 'vc4_(hvs|v3d)_unbind|NULL pointer'
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

