Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
63ddf68de52efaac40a9287e44266ac30e71dd36 to < 97b5e8b22b98e287481a97a9a4cfebbb348738a5affected63ddf68de52efaac40a9287e44266ac30e71dd36 to < 503be26ff888cb3576e55d251895d290e8146f27affected63ddf68de52efaac40a9287e44266ac30e71dd36 to < be0f7745f883386e5263b4e475686a81dfa87175affected63ddf68de52efaac40a9287e44266ac30e71dd36 to < 67374e3a00814dcdd46e9feca61f69f7f2d81957affected63ddf68de52efaac40a9287e44266ac30e71dd36 to < 239d1683e08b2aee2a15ef35706e1ea9a76681d8affected63ddf68de52efaac40a9287e44266ac30e71dd36 to < 7690a86b193271322cd31ab77349a87aa10858e4affected63ddf68de52efaac40a9287e44266ac30e71dd36 to < 1618257cb0aba4ce342ae8c0228368c24161f5fbaffected63ddf68de52efaac40a9287e44266ac30e71dd36 to < fc530fe168bb2b745a93f553ad21fc25fd9cba3daffected
Linux Linux
Default version status: affected
3.18affected0 to < 3.18unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.51 to ≤ 6.18.*unaffected7.2.5 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/97b5e8b22b98e287481a97a9a4cfebbb348738a5 ↗
- https://git.kernel.org/stable/c/503be26ff888cb3576e55d251895d290e8146f27 ↗
- https://git.kernel.org/stable/c/be0f7745f883386e5263b4e475686a81dfa87175 ↗
- https://git.kernel.org/stable/c/67374e3a00814dcdd46e9feca61f69f7f2d81957 ↗
- https://git.kernel.org/stable/c/239d1683e08b2aee2a15ef35706e1ea9a76681d8 ↗
- https://git.kernel.org/stable/c/7690a86b193271322cd31ab77349a87aa10858e4 ↗
- https://git.kernel.org/stable/c/1618257cb0aba4ce342ae8c0228368c24161f5fb ↗
- https://git.kernel.org/stable/c/fc530fe168bb2b745a93f553ad21fc25fd9cba3d ↗