CVE-2026-68217

media: pwc: Drain fill_buf on start_streaming() failure

State
Published
Severity
Not scored
Published
Aug 10, 2026
Updated
Aug 19, 2026
Reserved
Jul 30, 2026

Read the record on cve.org

Description

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

media: pwc: Drain fill_buf on start_streaming() failure

pwc_isoc_init() submits its isochronous URBs with usb_submit_urb(.., GFP_KERNEL) in a loop. After the first URB is submitted, its completion handler pwc_isoc_handler() can run on another CPU before the loop finishes:

start_streaming() pwc_isoc_init() usb_submit_urb(urbs[0], GFP_KERNEL) pwc_isoc_handler(urbs[0]) pdev->fill_buf = pwc_get_next_fill_buf(pdev) usb_submit_urb(urbs[i>0], ..) -> fails pwc_isoc_cleanup(pdev) /* kills URBs */ return ret; pwc_cleanup_queued_bufs(pdev, VB2_BUF_STATE_QUEUED)

pwc_get_next_fill_buf() detaches a buffer from pdev->queued_bufs and stores it in pdev->fill_buf. The error path in start_streaming() only drains pdev->queued_bufs, so the buffer parked in pdev->fill_buf is leaked. vb2_start_streaming() then triggers WARN_ON(owned_by_drv_count).

stop_streaming() already handles this since commit 80b0963e1698 ("[media] pwc: fix WARN_ON"), which added the fill_buf drain in the teardown path but not in the start_streaming() error path. Mirror that handling on failure so start_streaming() returns with no buffer owned by the driver.

Issue identified by automated review of the INV-003 series at https://sashiko.dev/

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before 97f3c15957ec7e6d249f05407ad947c0644df24dAffected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before a4afffd148991a826e8995362fb10cf8705c1130Affected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before eabe9a59640698137d7382d5b549e95dc37f7565Affected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before a56e7641e09bd80b976e944ae759109b86fd5b38Affected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before acc789b2173070638cad89c2b61d33ed338be0ddAffected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before 9afd605dcd96c7a45f338eded1de16679b30e1dfAffected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before 5d4812668b03f823b5044789d6aa77fe56b42587Affected
  • 885fe18f5542fe283a17f70583383c6cadcba1c3 to before 906e410dcffbbd99fb4081abab817a830033aa28Affected
LinuxLinux
  • 3.1Affected
  • before 3.1Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.148 through 6.6.*Not affected
  • 6.12.101 through 6.12.*Not affected
  • 6.18.42 through 6.18.*Not affected
  • 7.1.6 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.