In the Linux kernel, the following vulnerability has been resolved:
media: vivid: fix cleanup bugs in vivid_init()
When platformdeviceregister() fails in vividinit(), the embedded struct device in vividpdev has already been initialized by deviceinitialize(), but the failure path jumps to freeoutput_strings without dropping the device reference for the current platform device:
vividinit() -> platformdeviceregister(&vividpdev) -> deviceinitialize(&vividpdev.dev) -> setuppdevdmamasks(&vividpdev) -> platformdeviceadd(&vivid_pdev)
This leads to a reference leak when platformdeviceregister() fails. Fix this by calling platformdeviceput() before jumping to the common cleanup path.
Also, the unregdriver label incorrectly calls platformdriverregister() instead of platformdriver_unregister(), which breaks cleanup when workqueue creation fails after successful driver registration. Fix that as well.
The reference leak was identified by a static analysis tool I developed and confirmed by manual review. The incorrect cleanup call was found during code inspection.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68203.json",
"cna_assigner": "Linux"
}