Description
In the Linux kernel, the following vulnerability has been resolved: dmaengine: fix NULL pointer in channel unregistration function __dma_async_device_channel_register() can fail. In case of failure, chan->local is freed (with free_percpu()), and chan->local is nullified. When dma_async_device_unregister() is called (because of managed API or intentionally by DMA controller driver), channels are unconditionally unregistered, leading to this NULL pointer: [ 1.318693] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0 [...] [ 1.484499] Call trace: [ 1.486930] device_del+0x40/0x394 [ 1.490314] device_unregister+0x20/0x7c [ 1.494220] __dma_async_device_channel_unregister+0x68/0xc0 Look at dma_async_device_register() function error path, channel device unregistration is done only if chan->local is not NULL. Then add the same condition at the beginning of __dma_async_device_channel_unregister() function, to avoid NULL pointer issue whatever the API used to reach this function.
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
d2fb0a0438384fee08a418025f743913020033ce to < 9de69732dde4e443c1c7f89acbbed2c45a6a8e17affectedd2fb0a0438384fee08a418025f743913020033ce to < 047fce470412ab64cb7345f9ff5d06919078ad79affectedd2fb0a0438384fee08a418025f743913020033ce to < 2ab32986a0b9e329eb7f8f04dd57cc127f797c08affectedd2fb0a0438384fee08a418025f743913020033ce to < 7f0ccfad2031eddcc510caf4e57f2d4aa2d8a50baffectedd2fb0a0438384fee08a418025f743913020033ce to < 9263fd2a63487c6d04cbb7b74a48fb12e1e352d0affectedd2fb0a0438384fee08a418025f743913020033ce to < f5c24d94512f1b288262beda4d3dcb9629222fc7affected
Linux Linux
Default version status: affected
5.6affected0 to < 5.6unaffected5.10.210 to ≤ 5.10.*unaffected5.15.149 to ≤ 5.15.*unaffected6.1.76 to ≤ 6.1.*unaffected6.6.15 to ≤ 6.6.*unaffected6.7.3 to ≤ 6.7.*unaffected6.8 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/9de69732dde4e443c1c7f89acbbed2c45a6a8e17 ↗
- https://git.kernel.org/stable/c/047fce470412ab64cb7345f9ff5d06919078ad79 ↗
- https://git.kernel.org/stable/c/2ab32986a0b9e329eb7f8f04dd57cc127f797c08 ↗
- https://git.kernel.org/stable/c/7f0ccfad2031eddcc510caf4e57f2d4aa2d8a50b ↗
- https://git.kernel.org/stable/c/9263fd2a63487c6d04cbb7b74a48fb12e1e352d0 ↗
- https://git.kernel.org/stable/c/f5c24d94512f1b288262beda4d3dcb9629222fc7 ↗
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html ↗