CVE-2023-52492

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-52492
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52492.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-52492
Downstream
Related
Published
2024-02-29T15:52:10.499Z
Modified
2025-11-28T02:34:39.118822Z
Severity
  • 4.4 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
dmaengine: fix NULL pointer in channel unregistration function
Details

In the Linux kernel, the following vulnerability has been resolved:

dmaengine: fix NULL pointer in channel unregistration function

_dmaasyncdevicechannelregister() can fail. In case of failure, chan->local is freed (with freepercpu()), and chan->local is nullified. When dmaasyncdeviceunregister() 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] devicedel+0x40/0x394 [ 1.490314] deviceunregister+0x20/0x7c [ 1.494220] _dmaasyncdevicechannelunregister+0x68/0xc0

Look at dmaasyncdevice_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 _dmaasyncdevicechannel_unregister() function, to avoid NULL pointer issue whatever the API used to reach this function.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/52xxx/CVE-2023-52492.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
d2fb0a0438384fee08a418025f743913020033ce
Fixed
9de69732dde4e443c1c7f89acbbed2c45a6a8e17
Fixed
047fce470412ab64cb7345f9ff5d06919078ad79
Fixed
2ab32986a0b9e329eb7f8f04dd57cc127f797c08
Fixed
7f0ccfad2031eddcc510caf4e57f2d4aa2d8a50b
Fixed
9263fd2a63487c6d04cbb7b74a48fb12e1e352d0
Fixed
f5c24d94512f1b288262beda4d3dcb9629222fc7

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.6.0
Fixed
5.10.210
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.149
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.76
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.15
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.7.3