Skip to main content

CVE-2024-42234: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-42234cvecve-2024-42234
Published: Wed Aug 07 2024 (08/07/2024, 15:14:24 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: mm: fix crashes from deferred split racing folio migration Even on 6.10-rc6, I've been seeing elusive "Bad page state"s (often on flags when freeing, yet the flags shown are not bad: PG_locked had been set and cleared??), and VM_BUG_ON_PAGE(page_ref_count(page) == 0)s from deferred_split_scan()'s folio_put(), and a variety of other BUG and WARN symptoms implying double free by deferred split and large folio migration. 6.7 commit 9bcef5973e31 ("mm: memcg: fix split queue list crash when large folio migration") was right to fix the memcg-dependent locking broken in 85ce2c517ade ("memcontrol: only transfer the memcg data for migration"), but missed a subtlety of deferred_split_scan(): it moves folios to its own local list to work on them without split_queue_lock, during which time folio->_deferred_list is not empty, but even the "right" lock does nothing to secure the folio and the list it is on. Fortunately, deferred_split_scan() is careful to use folio_try_get(): so folio_migrate_mapping() can avoid the race by folio_undo_large_rmappable() while the old folio's reference count is temporarily frozen to 0 - adding such a freeze in the !mapping case too (originally, folio lock and unmapping and no swap cache left an anon folio unreachable, so no freezing was needed there: but the deferred split queue offers a way to reach it).

AI-Powered Analysis

AILast updated: 06/29/2025, 06:09:56 UTC

Technical Analysis

CVE-2024-42234 is a vulnerability in the Linux kernel's memory management subsystem, specifically related to the handling of deferred split racing during folio migration. The issue arises from a race condition in the deferred_split_scan() function, which manages folios (large memory pages) by moving them to a local list for processing without holding the split_queue_lock. During this time, the folio's _deferred_list is not empty, and the locking mechanisms in place do not adequately protect the folio or the list it resides on. This leads to scenarios where folios can be double-freed or cause inconsistent states such as "Bad page state" errors and VM_BUG_ON_PAGE warnings, indicating potential memory corruption or kernel crashes. The root cause involves subtle interactions between memory control group (memcg) locking and folio reference counting, particularly when folio_try_get() is used to avoid races but does not fully prevent them in all cases. The fix involves freezing the folio's reference count temporarily to prevent races during migration and deferred splitting, especially in cases where the folio is not associated with a mapping. This vulnerability affects Linux kernel versions around the 6.7 to 6.10-rc6 development cycle and could lead to system instability or crashes if exploited. No known exploits are currently reported in the wild, and no CVSS score has been assigned yet.

Potential Impact

For European organizations, this vulnerability poses a risk primarily to servers and infrastructure running affected Linux kernel versions, especially those utilizing memory control groups and large folio migration features. Potential impacts include kernel crashes leading to denial of service (DoS), which could disrupt critical services, cloud environments, and containerized workloads that rely heavily on Linux memory management. While there is no evidence of remote code execution or privilege escalation directly from this flaw, the instability caused could be leveraged as part of a broader attack chain or cause significant operational disruptions. Organizations running high-availability systems, financial services platforms, or critical infrastructure in Europe could face service outages or degraded performance. Additionally, environments with heavy memory usage or custom kernel builds might be more susceptible. The lack of known exploits reduces immediate risk, but the complexity and subtlety of the bug mean that sophisticated attackers or accidental triggers could cause impactful system failures.

Mitigation Recommendations

European organizations should prioritize updating their Linux kernels to versions that include the fix for CVE-2024-42234, ideally moving to stable releases beyond 6.10-rc6 where the patch is integrated. Kernel upgrades should be tested in staging environments to ensure compatibility, especially for workloads sensitive to memory management changes. For environments where immediate patching is not feasible, monitoring kernel logs for symptoms such as "Bad page state" errors, VM_BUG_ON_PAGE warnings, or unusual memory-related crashes can help detect potential exploitation or triggering of this vulnerability. Organizations should also review their use of memory control groups and large folio migration features, considering temporary configuration adjustments to reduce exposure. Employing kernel live patching solutions where available can minimize downtime during patch deployment. Finally, maintaining robust backup and recovery procedures will mitigate the impact of potential crashes caused by this vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-07-30T07:40:12.252Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9827c4522896dcbe1c9a

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

Last enriched: 6/29/2025, 6:09:56 AM

Last updated: 7/31/2025, 8:29:02 AM

Views: 16

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