CVE-2023-52849

Source
https://cve.org/CVERecord?id=CVE-2023-52849
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52849.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-52849
Downstream
Related
Published
2024-05-21T15:31:45.884Z
Modified
2026-04-11T12:46:37.201939Z
Summary
cxl/mem: Fix shutdown order
Details

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

cxl/mem: Fix shutdown order

Ira reports that removing cxlmockmem causes a crash with the following trace:

BUG: kernel NULL pointer dereference, address: 0000000000000044 [..] RIP: 0010:cxlregiondecodereset+0x7f/0x180 [cxlcore] [..] Call Trace: <TASK> cxlregiondetach+0xe8/0x210 [cxlcore] cxldecoderkillregion+0x27/0x40 [cxlcore] cxldunregister+0x29/0x40 [cxlcore] devresreleaseall+0xb8/0x110 deviceunbindcleanup+0xe/0x70 devicereleasedriverinternal+0x1d2/0x210 busremovedevice+0xd7/0x150 devicedel+0x155/0x3e0 deviceunregister+0x13/0x60 devmreleaseaction+0x4d/0x90 ? _pfxunregisterport+0x10/0x10 [cxlcore] deleteendpoint+0x121/0x130 [cxlcore] devresreleaseall+0xb8/0x110 deviceunbindcleanup+0xe/0x70 devicereleasedriverinternal+0x1d2/0x210 busremovedevice+0xd7/0x150 devicedel+0x155/0x3e0 ? lockrelease+0x142/0x290 cdevdevicedel+0x15/0x50 cxlmemdevunregister+0x54/0x70 [cxlcore]

This crash is due to the clearing out the cxl_memdev's driver context (@cxlds) before the subsystem is done with it. This is ultimately due to the region(s), that this memdev is a member, being torn down and expecting to be able to de-reference @cxlds, like here:

static int cxlregiondecodereset(struct cxlregion *cxlr, int count) ... if (cxlds->rcd) goto endpoint_reset; ...

Fix it by keeping the driver context valid until memdev-device unregistration, and subsequently the entire stack of related dependencies, unwinds.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/52xxx/CVE-2023-52849.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
9cc238c7a526dba9ee8c210fa2828886fc65db66
Fixed
20bd0198bebdd706bd4614b3933ef70d7c19618f
Fixed
7c7371b41a14e86f53e7dbe5baa7b1d3e0ab324b
Fixed
cad22a757029c3a1985c221a2d4a6491ad4035ae
Fixed
0ca074f7d788627a4e0b047ca5fbdb5fc567220c
Fixed
88d3917f82ed4215a2154432c26de1480a61b209
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
964a9834492210f48b360baa9e20a9eedf4d08ff

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52849.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.15.0
Fixed
5.15.139
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.63
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.5.12
Type
ECOSYSTEM
Events
Introduced
6.6.0
Fixed
6.6.2

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-52849.json"