{"id":"CVE-2026-68203","title":"media: vivid: fix cleanup bugs in vivid_init()","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: vivid: fix cleanup bugs in vivid_init()\n\nWhen platform_device_register() fails in vivid_init(), the embedded\nstruct device in vivid_pdev has already been initial…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < ae6ccae32f51f788035d2c5cec898491dd7150ef","Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < 4385092a86b94e1f332db35a3766108978c0722f","Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < 1349af7f87df57940619f5b87990b799dac9ed8a","Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < 6d51ad8f1c50c50d1abcc97fd243179967184c6a","Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < a07c179a92e949172ca52f6d4a13202ea88cd4b7","Linux 4.1"],"published":"2026-08-10","updated":"2026-10-21","sourceUpdated":"2026-10-21T12:43:32.072Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-68203","references":[{"url":"https://git.kernel.org/stable/c/ae6ccae32f51f788035d2c5cec898491dd7150ef"},{"url":"https://git.kernel.org/stable/c/4385092a86b94e1f332db35a3766108978c0722f"},{"url":"https://git.kernel.org/stable/c/1349af7f87df57940619f5b87990b799dac9ed8a"},{"url":"https://git.kernel.org/stable/c/6d51ad8f1c50c50d1abcc97fd243179967184c6a"},{"url":"https://git.kernel.org/stable/c/a07c179a92e949172ca52f6d4a13202ea88cd4b7"}],"tags":["cve.org"],"epss":0.00209,"epssPercentile":0.10422,"ingestedAt":"2026-10-21T12:48:53.605Z","slug":"CVE-2026-68203","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nmedia: vivid: fix cleanup bugs in vivid_init()\n\nWhen platform_device_register() fails in vivid_init(), the embedded\nstruct device in vivid_pdev has already been initialized by\ndevice_initialize(), but the failure path jumps to free_output_strings\nwithout dropping the device reference for the current platform device:\n\n  vivid_init()\n    -> platform_device_register(&vivid_pdev)\n       -> device_initialize(&vivid_pdev.dev)\n       -> setup_pdev_dma_masks(&vivid_pdev)\n       -> platform_device_add(&vivid_pdev)\n\nThis leads to a reference leak when platform_device_register() fails.\nFix this by calling platform_device_put() before jumping to the common\ncleanup path.\n\nAlso, the unreg_driver label incorrectly calls\nplatform_driver_register() instead of platform_driver_unregister(),\nwhich breaks cleanup when workqueue creation fails after successful\ndriver registration. Fix that as well.\n\nThe reference leak was identified by a static analysis tool I developed\nand confirmed by manual review. The incorrect cleanup call was found\nduring code inspection.\n\n## Affected\n\n- `Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < ae6ccae32f51f788035d2c5cec898491dd7150ef`\n- `Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < 4385092a86b94e1f332db35a3766108978c0722f`\n- `Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < 1349af7f87df57940619f5b87990b799dac9ed8a`\n- `Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < 6d51ad8f1c50c50d1abcc97fd243179967184c6a`\n- `Linux >= f46d740fb0258982f00ffdbddc6486e674edafb5 < a07c179a92e949172ca52f6d4a13202ea88cd4b7`\n- `Linux 4.1`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}