Description
In the Linux kernel, the following vulnerability has been resolved:

media: vivid: fix cleanup bugs in vivid_init()

When platform_device_register() fails in vivid_init(), the embedded
struct device in vivid_pdev has already been initialized by
device_initialize(), but the failure path jumps to free_output_strings
without dropping the device reference for the current platform device:

vivid_init()
-> platform_device_register(&vivid_pdev)
-> device_initialize(&vivid_pdev.dev)
-> setup_pdev_dma_masks(&vivid_pdev)
-> platform_device_add(&vivid_pdev)

This leads to a reference leak when platform_device_register() fails.
Fix this by calling platform_device_put() before jumping to the common
cleanup path.

Also, the unreg_driver label incorrectly calls
platform_driver_register() instead of platform_driver_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.
Published: 2026-08-10
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

During initialization of the Linux media vivid driver, a failure in platform_device_register() leaves an initialized device reference unreleased, creating a reference leak. A separate code path incorrectly calls platform_driver_register() during cleanup, preventing the driver from being unregistered when a workqueue fails. These bugs can cause kernel memory or resource exhaustion, potentially destabilizing the system. The vulnerabilities are identified as resource leakage issues (such as memory leaks) in the device registration and cleanup code paths.

Affected Systems

The issue arises in all Linux kernel releases that include the vivid media driver before the patch. Vendors such as Linux distributions that ship the affected kernel version are impacted. The vendor product is the Linux kernel itself, specifically the media/vivid driver module. No specific kernel version range is listed, so any kernel containing the unpatched vivid driver is vulnerable.

Risk and Exploitability

The CVSS score is not provided, but the EPSS score of < 1% and absence from the CISA KEV catalog suggest a comparatively lower mainstream exploitation probability. The vulnerability requires a local context that can trigger the vivid driver’s initialization failure, for example by loading the driver or interacting with its device interface. An attacker who can repeatedly provoke the failure path may exhaust kernel references or memory, leading to a denial of service or instability. The risk is therefore moderate to high for systems that load this driver and are exposed to untrusted input or modules.

Generated by OpenCVE AI on August 13, 2026 at 08:12 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply an updated Linux kernel that contains the fixed vivid driver patch
  • Reboot or reload the kernel so the new driver version is in use
  • Disable or blacklist the vivid driver if it is not required until the patch is applied

Generated by OpenCVE AI on August 13, 2026 at 08:12 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4745-1 linux-6.12 security update
History

Thu, 13 Aug 2026 07:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401
CWE-754

Wed, 12 Aug 2026 00:15:00 +0000


Mon, 10 Aug 2026 18:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401
CWE-754

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: media: vivid: fix cleanup bugs in vivid_init() When platform_device_register() fails in vivid_init(), the embedded struct device in vivid_pdev has already been initialized by device_initialize(), but the failure path jumps to free_output_strings without dropping the device reference for the current platform device: vivid_init() -> platform_device_register(&vivid_pdev) -> device_initialize(&vivid_pdev.dev) -> setup_pdev_dma_masks(&vivid_pdev) -> platform_device_add(&vivid_pdev) This leads to a reference leak when platform_device_register() fails. Fix this by calling platform_device_put() before jumping to the common cleanup path. Also, the unreg_driver label incorrectly calls platform_driver_register() instead of platform_driver_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.
Title media: vivid: fix cleanup bugs in vivid_init()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:00:47.012Z

Reserved: 2026-07-30T09:28:09.374Z

Link: CVE-2026-68203

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-10T13:20:07.897

Modified: 2026-08-17T05:18:22.300

Link: CVE-2026-68203

cve-icon Redhat

Severity :

Publid Date: 2026-08-10T00:00:00Z

Links: CVE-2026-68203 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T08:15:05Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime