Skip to main content

CVE-2024-36925: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-36925cvecve-2024-36925
Published: Thu May 30 2024 (05/30/2024, 15:29:19 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

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().

AI-Powered Analysis

AILast updated: 06/29/2025, 10:12:09 UTC

Technical Analysis

CVE-2024-36925 is a vulnerability identified in the Linux kernel related to the handling of restricted DMA pools when used in conjunction with dynamic SWIOTLB (Software Input/Output Translation Lookaside Buffer). Specifically, the issue arises when the kernel is configured with CONFIG_DMA_RESTRICTED_POOL=y and CONFIG_SWIOTLB_DYNAMIC=y. During the boot process, the initialization of restricted DMA pools leads to a NULL pointer dereference crash. The root cause is that the 'mem->pools' list_head is not properly initialized before it is used in the add_mem_pool() function, which attempts to add an entry to this list using list_add_rcu(). This results in a kernel oops and system crash, as evidenced by the stack trace pointing to rmem_swiotlb_device_init and related functions. The problem is located in kernel/dma/swiotlb.c and involves list validation code in include/linux/list.h and include/linux/rculist.h. The fix involves initializing the 'mem->pools' list_head in rmem_swiotlb_device_init() before any additions are made to the list, preventing the NULL pointer dereference and subsequent crash. This vulnerability affects Linux kernel versions identified by the provided commit hashes and was published on May 30, 2024. There are no known exploits in the wild at this time, and no CVSS score has been assigned yet.

Potential Impact

For European organizations, this vulnerability primarily poses a risk of system instability and denial of service (DoS) due to kernel crashes during boot when the affected configurations are used. Systems relying on restricted DMA pools with dynamic SWIOTLB enabled may fail to start or reboot properly, leading to potential downtime and disruption of critical services. This is particularly impactful for environments running customized or embedded Linux kernels with these specific configurations, such as telecommunications infrastructure, industrial control systems, and certain cloud or data center environments that utilize advanced DMA configurations for performance or security reasons. While the vulnerability does not directly lead to privilege escalation or data leakage, the availability impact can be significant, especially in high-availability or real-time systems. The absence of known exploits reduces immediate risk, but unpatched systems remain vulnerable to accidental crashes or potential targeted attacks exploiting this flaw.

Mitigation Recommendations

European organizations should take the following specific actions: 1) Identify Linux systems running kernels with CONFIG_DMA_RESTRICTED_POOL=y and CONFIG_SWIOTLB_DYNAMIC=y enabled, especially those using custom or embedded kernel builds. 2) Apply the official Linux kernel patch that initializes the 'mem->pools' list_head in rmem_swiotlb_device_init() as soon as it becomes available from trusted sources or kernel maintainers. 3) For systems where immediate patching is not feasible, consider disabling either CONFIG_DMA_RESTRICTED_POOL or CONFIG_SWIOTLB_DYNAMIC if operationally acceptable, to avoid triggering the vulnerable code path. 4) Implement robust boot-time monitoring and automated recovery mechanisms to detect and remediate kernel crashes promptly. 5) Engage with hardware and software vendors to ensure updated kernel versions are provided for affected devices. 6) Conduct thorough testing of updated kernels in staging environments to confirm stability before deployment. 7) Maintain inventory and configuration management to track affected kernel versions and configurations across the organization.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-05-30T15:25:07.069Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9828c4522896dcbe26ca

Added to database: 5/21/2025, 9:08:56 AM

Last enriched: 6/29/2025, 10:12:09 AM

Last updated: 8/7/2025, 4:58:11 AM

Views: 13

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats