CVE-2024-50273: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: btrfs: reinitialize delayed ref list after deleting it from the list At insert_delayed_ref() if we need to update the action of an existing ref to BTRFS_DROP_DELAYED_REF, we delete the ref from its ref head's ref_add_list using list_del(), which leaves the ref's add_list member not reinitialized, as list_del() sets the next and prev members of the list to LIST_POISON1 and LIST_POISON2, respectively. If later we end up calling drop_delayed_ref() against the ref, which can happen during merging or when destroying delayed refs due to a transaction abort, we can trigger a crash since at drop_delayed_ref() we call list_empty() against the ref's add_list, which returns false since the list was not reinitialized after the list_del() and as a consequence we call list_del() again at drop_delayed_ref(). This results in an invalid list access since the next and prev members are set to poison pointers, resulting in a splat if CONFIG_LIST_HARDENED and CONFIG_DEBUG_LIST are set or invalid poison pointer dereferences otherwise. So fix this by deleting from the list with list_del_init() instead.
AI Analysis
Technical Summary
CVE-2024-50273 is a vulnerability identified in the Linux kernel's Btrfs (B-tree file system) implementation. The issue arises in the handling of delayed references within the Btrfs code, specifically in the insert_delayed_ref() function. When the action of an existing reference is updated to BTRFS_DROP_DELAYED_REF, the reference is removed from its ref head's ref_add_list using list_del(). However, list_del() only removes the list entry but does not reinitialize the list pointers, leaving the add_list member in an inconsistent state with pointers set to poison values (LIST_POISON1 and LIST_POISON2). Later, if drop_delayed_ref() is called on this reference—such as during merging operations or when aborting a transaction—the function calls list_empty() on the add_list. Because the list pointers were not reinitialized, list_empty() returns false, leading drop_delayed_ref() to call list_del() again on the already deleted list entry. This results in invalid memory access due to dereferencing poison pointers, causing a kernel crash (splat) if CONFIG_LIST_HARDENED and CONFIG_DEBUG_LIST are enabled, or undefined behavior otherwise. The fix involves replacing list_del() with list_del_init(), which both removes the list entry and reinitializes the list pointers, preventing the invalid access. This vulnerability affects Linux kernel versions containing the specified commit hashes and relates to the internal management of Btrfs delayed references, a critical subsystem for file system integrity and performance.
Potential Impact
For European organizations, this vulnerability poses a risk primarily to systems running Linux kernels with Btrfs enabled and in use. Btrfs is increasingly adopted in enterprise and cloud environments for its advanced features like snapshots and checksums. Exploitation of this vulnerability can lead to kernel crashes, resulting in denial of service (DoS) conditions. This can disrupt critical services, cause data unavailability, and potentially lead to data corruption if transactions are aborted improperly. While the vulnerability does not appear to allow privilege escalation or remote code execution directly, the resulting instability can be exploited by attackers to cause service outages or trigger system reboots. Organizations relying on Linux servers for infrastructure, cloud platforms, or storage solutions using Btrfs are at risk. The lack of known exploits in the wild currently reduces immediate threat, but the vulnerability's presence in widely used Linux kernels means that attackers could develop exploits, especially in environments where kernel debugging features are enabled. The impact is heightened in sectors requiring high availability and data integrity, such as finance, healthcare, and critical infrastructure within Europe.
Mitigation Recommendations
European organizations should prioritize updating their Linux kernels to versions where this vulnerability is patched. Specifically, ensure that the kernel includes the fix replacing list_del() with list_del_init() in the Btrfs delayed ref handling code. For environments where immediate patching is not feasible, consider disabling Btrfs or migrating critical data to alternative file systems temporarily. Additionally, monitor kernel logs for signs of splats or crashes related to Btrfs delayed refs, which may indicate attempted exploitation or instability. Employ kernel hardening configurations such as CONFIG_LIST_HARDENED and CONFIG_DEBUG_LIST to detect and mitigate invalid list operations early. Implement robust backup and recovery procedures to protect against potential data loss from crashes. Finally, maintain vigilance for any emerging exploit reports or patches related to this CVE and apply updates promptly.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Norway, Denmark, Italy, Spain
CVE-2024-50273: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: reinitialize delayed ref list after deleting it from the list At insert_delayed_ref() if we need to update the action of an existing ref to BTRFS_DROP_DELAYED_REF, we delete the ref from its ref head's ref_add_list using list_del(), which leaves the ref's add_list member not reinitialized, as list_del() sets the next and prev members of the list to LIST_POISON1 and LIST_POISON2, respectively. If later we end up calling drop_delayed_ref() against the ref, which can happen during merging or when destroying delayed refs due to a transaction abort, we can trigger a crash since at drop_delayed_ref() we call list_empty() against the ref's add_list, which returns false since the list was not reinitialized after the list_del() and as a consequence we call list_del() again at drop_delayed_ref(). This results in an invalid list access since the next and prev members are set to poison pointers, resulting in a splat if CONFIG_LIST_HARDENED and CONFIG_DEBUG_LIST are set or invalid poison pointer dereferences otherwise. So fix this by deleting from the list with list_del_init() instead.
AI-Powered Analysis
Technical Analysis
CVE-2024-50273 is a vulnerability identified in the Linux kernel's Btrfs (B-tree file system) implementation. The issue arises in the handling of delayed references within the Btrfs code, specifically in the insert_delayed_ref() function. When the action of an existing reference is updated to BTRFS_DROP_DELAYED_REF, the reference is removed from its ref head's ref_add_list using list_del(). However, list_del() only removes the list entry but does not reinitialize the list pointers, leaving the add_list member in an inconsistent state with pointers set to poison values (LIST_POISON1 and LIST_POISON2). Later, if drop_delayed_ref() is called on this reference—such as during merging operations or when aborting a transaction—the function calls list_empty() on the add_list. Because the list pointers were not reinitialized, list_empty() returns false, leading drop_delayed_ref() to call list_del() again on the already deleted list entry. This results in invalid memory access due to dereferencing poison pointers, causing a kernel crash (splat) if CONFIG_LIST_HARDENED and CONFIG_DEBUG_LIST are enabled, or undefined behavior otherwise. The fix involves replacing list_del() with list_del_init(), which both removes the list entry and reinitializes the list pointers, preventing the invalid access. This vulnerability affects Linux kernel versions containing the specified commit hashes and relates to the internal management of Btrfs delayed references, a critical subsystem for file system integrity and performance.
Potential Impact
For European organizations, this vulnerability poses a risk primarily to systems running Linux kernels with Btrfs enabled and in use. Btrfs is increasingly adopted in enterprise and cloud environments for its advanced features like snapshots and checksums. Exploitation of this vulnerability can lead to kernel crashes, resulting in denial of service (DoS) conditions. This can disrupt critical services, cause data unavailability, and potentially lead to data corruption if transactions are aborted improperly. While the vulnerability does not appear to allow privilege escalation or remote code execution directly, the resulting instability can be exploited by attackers to cause service outages or trigger system reboots. Organizations relying on Linux servers for infrastructure, cloud platforms, or storage solutions using Btrfs are at risk. The lack of known exploits in the wild currently reduces immediate threat, but the vulnerability's presence in widely used Linux kernels means that attackers could develop exploits, especially in environments where kernel debugging features are enabled. The impact is heightened in sectors requiring high availability and data integrity, such as finance, healthcare, and critical infrastructure within Europe.
Mitigation Recommendations
European organizations should prioritize updating their Linux kernels to versions where this vulnerability is patched. Specifically, ensure that the kernel includes the fix replacing list_del() with list_del_init() in the Btrfs delayed ref handling code. For environments where immediate patching is not feasible, consider disabling Btrfs or migrating critical data to alternative file systems temporarily. Additionally, monitor kernel logs for signs of splats or crashes related to Btrfs delayed refs, which may indicate attempted exploitation or instability. Employ kernel hardening configurations such as CONFIG_LIST_HARDENED and CONFIG_DEBUG_LIST to detect and mitigate invalid list operations early. Implement robust backup and recovery procedures to protect against potential data loss from crashes. Finally, maintain vigilance for any emerging exploit reports or patches related to this CVE and apply updates promptly.
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-10-21T19:36:19.983Z
- Cisa Enriched
- false
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9824c4522896dcbdf706
Added to database: 5/21/2025, 9:08:52 AM
Last enriched: 6/28/2025, 1:41:39 PM
Last updated: 8/11/2025, 9:27:39 PM
Views: 12
Related Threats
CVE-2025-53948: CWE-415 Double Free in Santesoft Sante PACS Server
HighCVE-2025-52584: CWE-122 Heap-based Buffer Overflow in Ashlar-Vellum Cobalt
HighCVE-2025-46269: CWE-122 Heap-based Buffer Overflow in Ashlar-Vellum Cobalt
HighCVE-2025-54862: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Santesoft Sante PACS Server
MediumCVE-2025-54759: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Santesoft Sante PACS Server
MediumActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.