CVE-2024-50273

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
19/11/2024
Last modified:
03/11/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> btrfs: reinitialize delayed ref list after deleting it from the list<br /> <br /> At insert_delayed_ref() if we need to update the action of an existing<br /> ref to BTRFS_DROP_DELAYED_REF, we delete the ref from its ref head&amp;#39;s<br /> ref_add_list using list_del(), which leaves the ref&amp;#39;s add_list member<br /> not reinitialized, as list_del() sets the next and prev members of the<br /> list to LIST_POISON1 and LIST_POISON2, respectively.<br /> <br /> If later we end up calling drop_delayed_ref() against the ref, which can<br /> happen during merging or when destroying delayed refs due to a transaction<br /> abort, we can trigger a crash since at drop_delayed_ref() we call<br /> list_empty() against the ref&amp;#39;s add_list, which returns false since<br /> the list was not reinitialized after the list_del() and as a consequence<br /> we call list_del() again at drop_delayed_ref(). This results in an<br /> invalid list access since the next and prev members are set to poison<br /> pointers, resulting in a splat if CONFIG_LIST_HARDENED and<br /> CONFIG_DEBUG_LIST are set or invalid poison pointer dereferences<br /> otherwise.<br /> <br /> So fix this by deleting from the list with list_del_init() instead.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.10 (including) 4.19.324 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (including) 5.4.286 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.230 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.172 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.117 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.61 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.11.8 (excluding)
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*