Executive brief
The Linux kernel's Cedrus video decoder driver contains a memory leak in its control handler initialization routine. When memory allocation fails during initialization, previously allocated handler resources are not properly freed, causing memory to remain allocated and unavailable for other uses. This is a resource exhaustion issue that could lead to gradual memory depletion, particularly on systems with limited memory or under conditions where initialization is repeatedly attempted and fails.
Technical details
The vulnerability is a resource leak (CWE-401) in the cedrus_init_ctrls() function of the Sunxi Cedrus VPU decoder driver. The function initializes a V4L2 control handler via v4l2_ctrl_handler_init() before attempting to allocate memory for ctx->ctrls via kzalloc(). If the kzalloc() call fails and returns NULL, the function returns -ENOMEM without calling v4l2_ctrl_handler_free() to release the previously allocated handler resources. An attacker or error condition triggering repeated failed initialization attempts could exhaust kernel memory. The fix involves adding v4l2_ctrl_handler_free(hdl) in the allocation failure path. This is not an exploitable remote vulnerability but rather a kernel resource leak affecting systems running vulnerable kernel versions with the Cedrus driver enabled.
Affected products
- Linux Linux kernel v6.13-rc1 and later, confirmed present in v7.1.1
Timeline
- 2026-09-16: disclosed: Published in CVE/NVD database
- 2026-06-24: patched: Fix committed upstream by Dawei Feng