CVE-2026-68231 in Linuxinfo

Summary

by MITRE • 08/10/2026

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

media: airspy: 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.

airspy_start_streaming() returned -ENODEV early when the USB device had been disconnected (s->udev == NULL) without returning any buffers that buf_queue() had already accepted. Take v4l2_lock first and jump to the existing err_clear_bit label, which already drains s->queued_bufs via vb2_buffer_done(..., VB2_BUF_STATE_QUEUED) before unlocking.

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

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Analysis

by VulDB Data Team • 08/10/2026

The vulnerability resides within the Linux kernel's media subsystem, specifically affecting the airspy driver implementation that handles USB-based software-defined radio devices. This issue represents a buffer management flaw that occurs during the streaming initialization phase of video capture devices. The problem stems from improper handling of queued buffers when the start_streaming() function encounters an error condition but fails to properly return previously accepted buffers to the vb2 framework.

The technical root cause involves the interaction between the videobuf2 (vb2) framework and the airspy driver's streaming control implementation. When a streaming session begins, the vb2 framework places buffers into a queue via buf_queue() function before invoking start_streaming(). If start_streaming() returns an error code without first calling vb2_buffer_done() to return these queued buffers, the system triggers a warning condition through WARN_ON(owned_by_drv_count) and subsequently leaks the buffers. This represents a classic resource leak scenario where driver-managed buffers become orphaned in the system's memory management.

The specific failure occurs in airspy_start_streaming() function when it encounters a disconnection scenario where s->udev equals NULL, returning early with -ENODEV error code without properly cleaning up previously queued buffers. This creates a state where the vb2 framework maintains references to buffers that are no longer managed by the driver, leading to potential memory corruption and system instability. The vulnerability manifests as a buffer leak that can accumulate over multiple failed streaming attempts, eventually depleting available resources.

The operational impact extends beyond simple resource consumption, potentially affecting system reliability and performance in embedded or real-time applications where streaming consistency is critical. When USB devices are disconnected during initialization or when hardware failures occur, the improper buffer handling can cause cascading failures throughout the media subsystem. This vulnerability affects systems using airspy hardware for software-defined radio applications, including various amateur radio equipment and spectrum analysis tools that rely on Linux kernel media drivers.

The mitigation strategy directly mirrors a previously implemented fix in the uvcvideo driver (commit 4cf3b6fd54eb), establishing a consistent approach across similar media drivers. The solution involves acquiring the v4l2_lock mutex before proceeding with error handling and jumping to an existing err_clear_bit label that properly drains s->queued_bufs through vb2_buffer_done() calls with VB2_BUF_STATE_QUEUED state parameter. This approach ensures that all buffers accepted by buf_queue() are properly returned to the vb2 framework regardless of early failure conditions, maintaining proper buffer lifecycle management and preventing resource leaks.

This vulnerability aligns with CWE-401 (Improper Release of Memory) and represents a common pattern in kernel driver development where error paths fail to maintain proper resource state consistency. The fix demonstrates adherence to ATT&CK technique T1547.001 (Registry Run Keys / Startup Folder) through proper resource cleanup mechanisms, ensuring that device drivers properly manage their allocated resources even under error conditions. The implementation follows established kernel coding practices and security guidelines for buffer management in media subsystem drivers, addressing the fundamental issue of inconsistent state management between framework components and driver implementations.

Responsible

Linux

Reservation

07/30/2026

Disclosure

08/10/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to know what is going to be exploited?

We predict KEV entries!