CVE-2026-90032: media: usbtv: keep device alive while ALSA card exists
In the Linux kernel, the following vulnerability has been resolved:
media: usbtv: keep device alive while ALSA card exists
The ALSA PCM callbacks store the driver state in pcm->privatedata. An open PCM file can outlive USB disconnect because usbtvaudiofree() uses sndcardfreewhenclosed(). The disconnect path can then drop the V4L2 device reference and free struct usbtv before ALSA releases the substream, so a later close dereferences freed memory in sndusbtvpcmclose().
Take a V4L2 device reference for the ALSA card and drop it from the card privatefree callback. This keeps struct usbtv valid until ALSA has closed the remaining files and freed the card.
Event History
Frequently Asked Questions
Who is exposed to this issue?
Systems using the Linux kernel usbtv driver with an ALSA PCM device are exposed when a PCM file remains open while the associated USB device disconnects.
What condition is required to trigger the use-after-free?
An ALSA PCM file must stay open beyond USB disconnect. The disconnect path can free the usbtv driver state before the remaining PCM substream is closed, and the later close accesses that freed state.
How can I tell whether a system may have encountered this issue?
The relevant failure occurs during closure of an ALSA PCM substream after the usbtv USB device has disconnected. Investigate crashes or memory-safety reports involving snd_usbtv_pcm_close in that sequence.
What does the fix change?
The fix holds a V4L2 device reference for the lifetime of the ALSA card and releases it through the card's private_free callback. This prevents struct usbtv from being freed until ALSA has closed outstanding files and released the card.