CVE-2023-52492

Severity CVSS v4.0:
Pending analysis
Type:
CWE-476 NULL Pointer Dereference
Publication date:
11/03/2024
Last modified:
04/04/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> dmaengine: fix NULL pointer in channel unregistration function<br /> <br /> __dma_async_device_channel_register() can fail. In case of failure,<br /> chan-&gt;local is freed (with free_percpu()), and chan-&gt;local is nullified.<br /> When dma_async_device_unregister() is called (because of managed API or<br /> intentionally by DMA controller driver), channels are unconditionally<br /> unregistered, leading to this NULL pointer:<br /> [ 1.318693] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0<br /> [...]<br /> [ 1.484499] Call trace:<br /> [ 1.486930] device_del+0x40/0x394<br /> [ 1.490314] device_unregister+0x20/0x7c<br /> [ 1.494220] __dma_async_device_channel_unregister+0x68/0xc0<br /> <br /> Look at dma_async_device_register() function error path, channel device<br /> unregistration is done only if chan-&gt;local is not NULL.<br /> <br /> Then add the same condition at the beginning of<br /> __dma_async_device_channel_unregister() function, to avoid NULL pointer<br /> issue whatever the API used to reach this function.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.6 (including) 5.10.210 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.149 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.76 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.15 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.7.3 (excluding)
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*