What’s Vulnerable › Vulnerabilities

CVE-2024-46840: btrfs: clean up our handling of refs == 0 in snapshot delete

Description

In the Linux kernel, the following vulnerability has been resolved: btrfs: clean up our handling of refs == 0 in snapshot delete In reada we BUG_ON(refs == 0), which could be unkind since we aren't holding a lock on the extent leaf and thus could get a transient incorrect answer. In walk_down_proc we also BUG_ON(refs == 0), which could happen if we have extent tree corruption. Change that to return -EUCLEAN. In do_walk_down() we catch this case and handle it correctly, however we return -EIO, which -EUCLEAN is a more appropriate error code. Finally in walk_up_proc we have the same BUG_ON(refs == 0), so convert that to proper error handling. Also adjust the error message so we can actually do something with the information.

Affected products

How to fix

Upgrade to a fixed version: Linux kernel 4.19.322, 5.10.226, 5.15.167, 5.4.284. Check the vendor advisory for mitigations.

References

Get alerted when CVE-2024-46840 or the next vulnerability affects your stack