CVE-2024-36925

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-36925
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-36925.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-36925
Downstream
Related
Published
2024-05-30T15:29:19.111Z
Modified
2025-11-27T02:32:41.467554Z
Summary
swiotlb: initialise restricted pool list_head when SWIOTLB_DYNAMIC=y
Details

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

swiotlb: initialise restricted pool listhead when SWIOTLBDYNAMIC=y

Using restricted DMA pools (CONFIGDMARESTRICTEDPOOL=y) in conjunction with dynamic SWIOTLB (CONFIGSWIOTLB_DYNAMIC=y) leads to the following crash when initialising the restricted pools at boot-time:

| Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 | Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP | pc : rmemswiotlbdeviceinit+0xfc/0x1ec | lr : rmemswiotlbdeviceinit+0xf0/0x1ec | Call trace: | rmemswiotlbdeviceinit+0xfc/0x1ec | ofreservedmemdeviceinitbyidx+0x18c/0x238 | ofdmaconfigureid+0x31c/0x33c | platformdmaconfigure+0x34/0x80

faddr2line reveals that the crash is in the list validation code:

include/linux/list.h:83 include/linux/rculist.h:79 include/linux/rculist.h:106 kernel/dma/swiotlb.c:306 kernel/dma/swiotlb.c:1695

because addmempool() is trying to listaddrcu() to a NULL 'mem->pools'.

Fix the crash by initialising the 'mem->pools' listhead in rmemswiotlbdeviceinit() before calling addmempool().

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/blob/cc431b3424123d84bcd7afd4de150b33f117a8ef/cves/2024/36xxx/CVE-2024-36925.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
1aaa736815eb04f4dae3f0b3e977b2a0677a4cfb
Fixed
f2a6b3ed20f2dea4cb645abc6a73c4595662adca
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1aaa736815eb04f4dae3f0b3e977b2a0677a4cfb
Fixed
f62e0fefcdfe2c05ccb1aa80521a69524eea9c84
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1aaa736815eb04f4dae3f0b3e977b2a0677a4cfb
Fixed
75961ffb5cb3e5196f19cae7683f35cc88b50800

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.6.0
Fixed
6.6.31
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.8.10