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

media: rtl2832_sdr: Return queued buffers on start_streaming() failure

The vb2 framework hands buffers to the driver via buf_queue() before
calling start_streaming(). If start_streaming() returns an error
without first returning those buffers via vb2_buffer_done(),
vb2_start_streaming() fires WARN_ON(owned_by_drv_count) and the queued
buffers leak.

rtl2832_sdr_start_streaming() had multiple error paths that hit this
trap: two direct early returns (-ENODEV, -ERESTARTSYS), plus six
`goto err` paths covering subdev s_power, tuner setup, ADC setup,
stream-buffer allocation, urb allocation, and urb submission failures.
None of them returned the queued buffers.

The original function had no distinct success exit and fell straight
through into the err label, which previously only did mutex_unlock and
"return ret". Adding queued-buffer cleanup at err must therefore be
paired with an explicit success return; otherwise every successful
start would also drain the buffer queue and kill streaming. Add that
success return, then add rtl2832_sdr_cleanup_queued_bufs() at the err
label and before each early return.

The cleanup helper takes a vb2_buffer_state argument so that the
start_streaming error paths can pass VB2_BUF_STATE_QUEUED (as
expected by userspace on start_streaming failure) while stop_streaming
keeps its existing VB2_BUF_STATE_ERROR semantics.

This mirrors the uvcvideo fix in commit 4cf3b6fd54eb ("media: uvcvideo:
Return queued buffers on start_streaming() failure").

The err label still does not roll back power_ctrl(), frontend_ctrl(),
the POWER_ON flag, or stream/URB allocations that may have happened
before the failing step. Those are pre-existing leaks of a different
class and are not addressed here.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel rtl2832_sdr driver contains a flaw in its start_streaming() routine. When this function fails, it fails to return queued buffers to the vb2 framework, triggering a WARN_ON check and leaving those buffers leaked. The consequence is a memory leak. Based on the description, it is inferred that this leak could accumulate over repeated failures, potentially exhausting system memory and causing a denial of service. The issue arises from multiple early return paths that bypass buffer cleanup; the patch introduces an explicit success exit and attaches helper cleanup logic on error.

Affected Systems

The vulnerable code resides in the Linux kernel’s rtl2832_sdr driver, which supports RTL2832‑based software‑defined radio devices such as RTL‑SDR dongles. No specific patch levels or kernel versions are listed, so all kernels containing this driver before the fix are affected.

Risk and Exploitability

The CVSS score is not provided and the EPSS score is unavailable, but the leak can be exploited locally by repeatedly causing start_streaming() to fail, leading to resource exhaustion. Based on the description, it is inferred that the vulnerability requires local access to the device and is not remotely exploitable. It is not listed in the CISA KEV catalogue, indicating no known widespread exploitation, yet the lack of cleanup poses a meaningful risk for systems relying on frequent SDR activity.

Generated by OpenCVE AI on August 10, 2026 at 15:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update to the latest Linux kernel release that implements the rtl2832_sdr buffer cleanup fix.
  • If updating is not possible, unload or blacklist the rtl2832_sdr module to prevent the driver from operating.
  • Monitor system memory usage for abnormal growth patterns that might indicate buffer leaks, and apply system resource limits if appropriate.

Generated by OpenCVE AI on August 10, 2026 at 15:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Weaknesses CWE-668

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: rtl2832_sdr: Return queued buffers on start_streaming() failure The vb2 framework hands buffers to the driver via buf_queue() before calling start_streaming(). If start_streaming() returns an error without first returning those buffers via vb2_buffer_done(), vb2_start_streaming() fires WARN_ON(owned_by_drv_count) and the queued buffers leak. rtl2832_sdr_start_streaming() had multiple error paths that hit this trap: two direct early returns (-ENODEV, -ERESTARTSYS), plus six `goto err` paths covering subdev s_power, tuner setup, ADC setup, stream-buffer allocation, urb allocation, and urb submission failures. None of them returned the queued buffers. The original function had no distinct success exit and fell straight through into the err label, which previously only did mutex_unlock and "return ret". Adding queued-buffer cleanup at err must therefore be paired with an explicit success return; otherwise every successful start would also drain the buffer queue and kill streaming. Add that success return, then add rtl2832_sdr_cleanup_queued_bufs() at the err label and before each early return. The cleanup helper takes a vb2_buffer_state argument so that the start_streaming error paths can pass VB2_BUF_STATE_QUEUED (as expected by userspace on start_streaming failure) while stop_streaming keeps its existing VB2_BUF_STATE_ERROR semantics. This mirrors the uvcvideo fix in commit 4cf3b6fd54eb ("media: uvcvideo: Return queued buffers on start_streaming() failure"). The err label still does not roll back power_ctrl(), frontend_ctrl(), the POWER_ON flag, or stream/URB allocations that may have happened before the failing step. Those are pre-existing leaks of a different class and are not addressed here.
Title media: rtl2832_sdr: Return queued buffers on start_streaming() failure
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-10T12:00:32.514Z

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

Link: CVE-2026-68213

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T18:00:03Z

Weaknesses
  • CWE-668

    Exposure of Resource to Wrong Sphere