media: usbtv: keep device alive while ALSA card exists
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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->private_data. An open PCM file can outlive USB disconnect because usbtv_audio_free() uses snd_card_free_when_closed(). 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 snd_usbtv_pcm_close(). Take a V4L2 device reference for the ALSA card and drop it from the card private_free callback. This keeps struct usbtv valid until ALSA has closed the remaining files and freed the card.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in 97b5e8b22b98e287481a97a9a4cfebbb348738a5; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in 503be26ff888cb3576e55d251895d290e8146f27; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in be0f7745f883386e5263b4e475686a81dfa87175; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in 67374e3a00814dcdd46e9feca61f69f7f2d81957; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in 239d1683e08b2aee2a15ef35706e1ea9a76681d8; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in 7690a86b193271322cd31ab77349a87aa10858e4; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in 1618257cb0aba4ce342ae8c0228368c24161f5fb; From 63ddf68de52efaac40a9287e44266ac30e71dd36 · fixed in fc530fe168bb2b745a93f553ad21fc25fd9cba3d
- Linux Linux
3.18
- KernelLinux
From 3.18.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5
References 8
git.kernel.org
- stable/c/97b5e8b22b98e287481a97a9a4cfebbb348738a5
- stable/c/503be26ff888cb3576e55d251895d290e8146f27
- stable/c/be0f7745f883386e5263b4e475686a81dfa87175
- stable/c/67374e3a00814dcdd46e9feca61f69f7f2d81957
- stable/c/239d1683e08b2aee2a15ef35706e1ea9a76681d8
- stable/c/7690a86b193271322cd31ab77349a87aa10858e4
- stable/c/1618257cb0aba4ce342ae8c0228368c24161f5fb
- stable/c/fc530fe168bb2b745a93f553ad21fc25fd9cba3d