CVE-2026-68229 Overview
CVE-2026-68229 is an out-of-bounds read vulnerability in the Linux kernel's Cedrus stateless video decoder driver. The flaw resides in the H.264 reference list handling path, where the driver consumes ref_pic_list0 and ref_pic_list1 entries from userspace-supplied stateless slice controls. The driver later uses these indices to access decode->dpb[] inside _cedrus_write_ref_list() without validating that the indices fit within the fixed V4L2_H264_NUM_DPB_ENTRIES array. A local user with access to the V4L2 device can trigger reads outside the decoded picture buffer array, leading to memory disclosure or kernel instability.
Critical Impact
Local authenticated users can trigger out-of-bounds reads in the kernel through crafted H.264 stateless slice controls, resulting in information disclosure or denial of service on affected Cedrus-based systems.
Affected Products
- Linux kernel builds shipping the cedrus media driver (Allwinner VPU support)
- Systems exposing /dev/videoX V4L2 stateless H.264 decode nodes to local users
- Distribution kernels prior to the fixes referenced in the upstream stable commits
Discovery Timeline
- 2026-08-10 - CVE-2026-68229 published to NVD
- 2026-08-13 - Last updated in NVD database
Technical Details for CVE-2026-68229
Vulnerability Analysis
The Cedrus driver implements stateless H.264 decoding for Allwinner video processing units. Stateless decoding requires userspace to pass slice parameters, including reference picture lists, through V4L2 controls. The kernel driver then translates those entries into hardware register writes.
Inside _cedrus_write_ref_list(), the driver iterates over ref_pic_list0 and ref_pic_list1 entries received from the slice control and uses each entry's index field as a direct offset into the decode->dpb[] array. That array has a fixed size of V4L2_H264_NUM_DPB_ENTRIES. The driver did not verify that supplied indices fell within this bound before dereferencing the DPB slot.
The maintainers chose not to reject malformed controls inside cedrus_try_ctrl() because legitimate stateless workloads can carry out-of-range indices for missing references. Instead, the fix guards the DPB lookup at the driver use site and skips entries whose indices exceed the array size. This preserves userspace compatibility while eliminating the unsafe access.
Root Cause
The root cause is missing bounds validation before an array index operation [CWE-125]. The driver trusted attacker-controlled indices from stateless slice controls when accessing the fixed-size DPB array, allowing reads beyond the intended buffer.
Attack Vector
An attacker requires local access and permissions to open the Cedrus V4L2 device node. The attacker then issues an ioctl sequence that submits a stateless H.264 slice control containing reference picture list entries with indices greater than or equal to V4L2_H264_NUM_DPB_ENTRIES. When the driver processes the slice, _cedrus_write_ref_list() performs the out-of-bounds read against kernel memory adjacent to the DPB structure. See the upstream fix commit for the specific code path.
No verified public exploit code is available for this issue.
Detection Methods for CVE-2026-68229
Indicators of Compromise
- Unexpected kernel warnings, KASAN reports, or oops messages referencing _cedrus_write_ref_list or the cedrus module in dmesg
- Local processes without a media workload profile opening /dev/video* nodes tied to the Cedrus driver
- Anomalous VIDIOC_S_EXT_CTRLS ioctl activity targeting stateless H.264 controls from non-media applications
Detection Strategies
- Enable KASAN on test kernels to surface out-of-bounds reads originating in the Cedrus driver during fuzzing or QA runs
- Audit process-to-device access to Cedrus V4L2 nodes and alert on unexpected callers issuing stateless decode ioctls
- Correlate kernel ring buffer anomalies with local privilege boundaries to identify probing of the media stack
Monitoring Recommendations
- Ship dmesg and auditd logs to a centralized analytics tier and search for cedrus, dpb, or KASAN strings
- Baseline which UIDs and containers legitimately interact with V4L2 stateless decode devices and alert on drift
- Track kernel version and patch level across Allwinner-based fleets to identify unpatched hosts
How to Mitigate CVE-2026-68229
Immediate Actions Required
- Update to a Linux kernel that includes the upstream Cedrus DPB bounds-check fix on all Allwinner-based systems
- Restrict access to /dev/video* device nodes to trusted users and service accounts using group ownership and udev rules
- On systems that do not require hardware video decoding, unload or blacklist the sun4i_cedrus module
Patch Information
The fix has been merged into the mainline and stable Linux kernel trees. Relevant commits include 0af8945f, 10358ea9, 2ee8327c, 9924cb54, and e53112c2. The patch adds a guard in _cedrus_write_ref_list() that skips reference list entries whose indices do not fit V4L2_H264_NUM_DPB_ENTRIES.
Workarounds
- Blacklist the sun4i_cedrus kernel module on systems that do not depend on hardware H.264 decoding
- Tighten permissions on /dev/video* nodes so only trusted media services can issue stateless decode ioctls
- Isolate untrusted workloads from Cedrus-capable hosts using containers or VMs without device passthrough
# Blacklist the Cedrus module until the kernel can be patched
echo 'blacklist sun4i_cedrus' | sudo tee /etc/modprobe.d/blacklist-cedrus.conf
sudo rmmod sun4i_cedrus 2>/dev/null || true
# Restrict access to V4L2 decode nodes to the video group only
sudo chown root:video /dev/video*
sudo chmod 0660 /dev/video*
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

