High · published May 1, 2024
In the Linux kernel, the following vulnerability has been resolved:
media: edia: dvbdev: fix a use-after-free
In dvb_register_device, *pdvbdev is set equal to dvbdev, which is freed
in several error-handling paths. However, *pdvbdev is not set to NULL
after dvbdev's deallocation, causing use-after-frees in many places,
for example, in the following call chain:
budget_register
|-> dvb_dmxdev_init
|-> dvb_register_device
|-> dvb_dmxdev_release
|-> dvb_unregister_device
|-> dvb_remove_device
|-> dvb_device_put
|-> kref_put
When calling dvb_unregister_device, dmxdev->dvbdev (i.e. *pdvbdev in
dvb_register_device) could point to memory that had been freed in
dvb_register_device. Thereafter, this pointer is transferred to
kref_put and triggering a use-after-free.
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 2.6.21, < 4.19.311 | 4.19.311 |
| linux/linux_kernel | ≥ 4.20, < 5.4.273 | 5.4.273 |
| linux/linux_kernel | ≥ 5.5, < 5.10.214 | 5.10.214 |
| linux/linux_kernel | ≥ 5.11, < 5.15.153 | 5.15.153 |
| linux/linux_kernel | ≥ 5.16, < 6.1.83 | 6.1.83 |
| linux/linux_kernel | ≥ 6.2, < 6.6.23 | 6.6.23 |
| linux/linux_kernel | ≥ 6.7, < 6.7.11 | 6.7.11 |
| linux/linux_kernel | ≥ 6.8, < 6.8.2 | 6.8.2 |