Bug 2300455 (CVE-2024-41078) - CVE-2024-41078 kernel: btrfs: qgroup: fix quota root leak after quota disable failure
Summary: CVE-2024-41078 kernel: btrfs: qgroup: fix quota root leak after quota disable...
Keywords:
Status: NEW
Alias: CVE-2024-41078
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2301648
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-07-29 15:51 UTC by OSIDB Bzimport
Modified: 2024-10-14 11:26 UTC (History)
5 users (show)

Fixed In Version: kernel 5.10.223, kernel 5.15.164, kernel 6.1.101, kernel 6.6.42, kernel 6.9.11, kernel 6.10
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2024-07-29 15:51:09 UTC
In the Linux kernel, the following vulnerability has been resolved:

btrfs: qgroup: fix quota root leak after quota disable failure

If during the quota disable we fail when cleaning the quota tree or when
deleting the root from the root tree, we jump to the 'out' label without
ever dropping the reference on the quota root, resulting in a leak of the
root since fs_info->quota_root is no longer pointing to the root (we have
set it to NULL just before those steps).

Fix this by always doing a btrfs_put_root() call under the 'out' label.
This is a problem that exists since qgroups were first added in 2012 by
commit bed92eae26cc ("Btrfs: qgroup implementation and prototypes"), but
back then we missed a kfree on the quota root and free_extent_buffer()
calls on its root and commit root nodes, since back then roots were not
yet reference counted.

Comment 1 Mauro Matteo Cascella 2024-07-30 14:06:10 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2024072925-CVE-2024-41078-ab5c@gregkh/T

Comment 2 Mauro Matteo Cascella 2024-07-30 14:06:33 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 2301648]


Note You need to log in before you can comment on or make changes to this bug.