CVE-2024-50273

btrfs: reinitialize delayed ref list after deleting it from the list

MEDIUM
5.5
CVSS Score
Published: November 19, 2024 at 01:30 AM UTC
Updated: August 5, 2026 at 12:05 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.10 ≤ v < 4.19.3244.10 ≤ v < 5.10.2304.10 ≤ v < 5.15.1724.10 ≤ v < 5.4.2864.10 ≤ v < 6.1.1174.10 ≤ v < 6.11.84.10 ≤ v < 6.124.10 ≤ v < 6.6.614.20 ≤ v < 5.4.2865.11 ≤ v < 5.15.1725.16 ≤ v < 6.1.1175.5 ≤ v < 5.10.2306.2 ≤ v < 6.6.616.7 ≤ v < 6.11.81d57ee941692d0cc928526e21a1557b2ae3e11db6.12 rc16.12 rc26.12 rc36.12 rc46.12 rc56.12 rc6
Vendor states this is fixed in 2cb1a73d1d44a1c11b0ee5eeced765dd80ec48e6 (fixed)
Vendor states this is fixed in 2fd0948a483e9cb2d669c7199bc620a21c97673d (fixed)
Vendor states this is fixed in 50a3933760b427759afdd23156a7280a19357a92 (fixed)
Vendor states this is fixed in 93c5b8decc0ef39ba84f4211d2db6da0a4aefbeb (fixed)
Vendor states this is fixed in bf0b0c6d159767c0d1c21f793950d78486690ee0 (fixed)
Vendor states this is fixed in c24fa427fc0ae827b2a3a07f13738cbf82c3f851 (fixed)
Vendor states this is fixed in c9a75ec45f1111ef530ab186c2a7684d0a0c9245 (fixed)
Vendor states this is fixed in f04be6d68f715c1473a8422fc0460f57b5e99931 (fixed)
Vendor states this is fixed in 4.10 (unaffected)
Vendor states this is fixed in 4.19.324 (unaffected)
Vendor states this is fixed in 5.10.230 (unaffected)
Vendor states this is fixed in 5.15.172 (unaffected)
Vendor states this is fixed in 5.4.286 (unaffected)
Vendor states this is fixed in 6.1.117 (unaffected)
Vendor states this is fixed in 6.11.8 (unaffected)
Vendor states this is fixed in 6.12 (unaffected)
Vendor states this is fixed in 6.6.61 (unaffected)

References (10)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2cb1a73d1d44a1c11b0ee5eeced765dd80ec48e6
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2fd0948a483e9cb2d669c7199bc620a21c97673d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/50a3933760b427759afdd23156a7280a19357a92
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/93c5b8decc0ef39ba84f4211d2db6da0a4aefbeb
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/bf0b0c6d159767c0d1c21f793950d78486690ee0
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c24fa427fc0ae827b2a3a07f13738cbf82c3f851
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c9a75ec45f1111ef530ab186c2a7684d0a0c9245
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f04be6d68f715c1473a8422fc0460f57b5e99931

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

5.5MEDIUMCISA-ADP
Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-908

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card