CVE-2024-36925: swiotlb: initialise restricted pool list_head when SWIOTLB_DYNAMIC=y
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().
Security readout for executives and security teams
Plain-English summary
CVE-2024-36925 is a Linux kernel boot-time crash in a specific DMA memory configuration. Systems using restricted DMA pools together with dynamic SWIOTLB can hit a null pointer dereference during initialization. The main business impact is availability: affected systems may fail during boot rather than exposing a clear data theft path.
Executive priority
Address during normal kernel maintenance, faster for devices where boot reliability is critical. There is no evidence of active exploitation in the provided sources, but affected systems can crash at boot under the specific configuration.
Technical view
The flaw is in Linux kernel SWIOTLB restricted pool initialization. With CONFIG_DMA_RESTRICTED_POOL=y and CONFIG_SWIOTLB_DYNAMIC=y, rmem_swiotlb_device_init() can call add_mem_pool() before mem->pools is initialized, causing list_add_rcu() to dereference NULL. The published fix initializes the list_head before adding the pool.
Likely exposure
Exposure appears limited to Linux kernels using both restricted DMA pools and dynamic SWIOTLB. The bundle lists Linux 6.6, 6.6.31, 6.8.10, and 6.9 as affected, but product and distribution-specific package status is not provided.
Exploitation context
The source bundle describes a boot-time crash, not a remote exploit path. KEV status is false, and no cited source states active exploitation. Treat this as an availability and platform reliability issue unless vendor advisories identify broader impact.
Researcher notes
Evidence is strongest for root cause and fix location, but incomplete for distribution packages, CVSS, CWE, and exploitability beyond boot-time denial of service. Validate exposure by configuration and kernel lineage rather than assuming all Linux deployments are affected.
Mitigation direction
Apply vendor kernel updates containing the referenced stable fixes.
Prioritize systems that require restricted DMA pools and dynamic SWIOTLB.
Check distribution advisories for exact fixed package versions.
Avoid inventing local workarounds; follow kernel or distribution guidance.
Test updated kernels on representative hardware before production rollout.
Validation and detection
Inventory kernel versions and configuration for the two affected options.
Check vendor changelogs for CVE-2024-36925 or the referenced commits.
Review boot logs for rmem_swiotlb_device_init or SWIOTLB null dereference crashes.
Confirm updated systems boot successfully with restricted DMA pools enabled.
Track unresolved systems where distribution fix status is unclear.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-36925 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.