CVE-2024-36925

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-36925
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-36925.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2024-36925
Downstream
Related
Published
2024-05-30T16:15:15Z
Modified
2024-11-21T09:22:49Z
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
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().

References

Affected packages

Debian:13 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.8.11-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}