CVE-2024-36925

swiotlb: initialise restricted pool list_head when SWIOTLB_DYNAMIC=y

State
Published
Severity
Not scored
Published
May 30, 2024
Updated
May 11, 2026
Reserved
May 30, 2024

Read the record on cve.org

Description

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

swiotlb: initialise restricted pool list_head when SWIOTLB_DYNAMIC=y

Using restricted DMA pools (CONFIG_DMA_RESTRICTED_POOL=y) in conjunction with dynamic SWIOTLB (CONFIG_SWIOTLB_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 : rmem_swiotlb_device_init+0xfc/0x1ec | lr : rmem_swiotlb_device_init+0xf0/0x1ec | Call trace: | rmem_swiotlb_device_init+0xfc/0x1ec | of_reserved_mem_device_init_by_idx+0x18c/0x238 | of_dma_configure_id+0x31c/0x33c | platform_dma_configure+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 add_mem_pool() is trying to list_add_rcu() to a NULL 'mem->pools'.

Fix the crash by initialising the 'mem->pools' list_head in rmem_swiotlb_device_init() before calling add_mem_pool().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1aaa736815eb04f4dae3f0b3e977b2a0677a4cfb to before f2a6b3ed20f2dea4cb645abc6a73c4595662adcaAffected
  • 1aaa736815eb04f4dae3f0b3e977b2a0677a4cfb to before f62e0fefcdfe2c05ccb1aa80521a69524eea9c84Affected
  • 1aaa736815eb04f4dae3f0b3e977b2a0677a4cfb to before 75961ffb5cb3e5196f19cae7683f35cc88b50800Affected
LinuxLinux
  • 6.6Affected
  • before 6.6Not affected
  • 6.6.31 through 6.6.*Not affected
  • 6.8.10 through 6.8.*Not affected
  • 6.9 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.