[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025050106-CVE-2022-49914-42a6@gregkh>
Date: Thu, 1 May 2025 16:11:44 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2022-49914: btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
During backref walking, at resolve_indirect_refs(), if we get an error
we jump to the 'out' label and call ulist_free() on the 'parents' ulist,
which frees all the elements in the ulist - however that does not free
any inode lists that may be attached to elements, through the 'aux' field
of a ulist node, so we end up leaking lists if we have any attached to
the unodes.
Fix this by calling free_leaf_list() instead of ulist_free() when we exit
from resolve_indirect_refs(). The static function free_leaf_list() is
moved up for this to be possible and it's slightly simplified by removing
unnecessary code.
The Linux kernel CVE team has assigned CVE-2022-49914 to this issue.
Affected and fixed versions
===========================
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 4.14.299 with commit b1dc9019bb5f89abae85645de1a2dd4830c1f8e9
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 4.19.265 with commit cded2c89774b99b67c98147ae103ea878c92a206
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 5.4.224 with commit 2c0329406bb28109c07c6e23e5e3e0fa618a95d7
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 5.10.154 with commit a52e24c7fcc3c5ce3588a14e3663c00868d36623
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 5.15.78 with commit 6ba3479f9e96b9ad460c7e77abc26dd16e5dec4f
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 6.0.8 with commit 396515db923ad5cbeb179d6b88927870b4cbebb7
Issue introduced in 3.5 with commit 3301958b7c1dae8f0f5ded63aa881e0b71e78464 and fixed in 6.1 with commit 5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2022-49914
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
fs/btrfs/backref.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/b1dc9019bb5f89abae85645de1a2dd4830c1f8e9
https://git.kernel.org/stable/c/cded2c89774b99b67c98147ae103ea878c92a206
https://git.kernel.org/stable/c/2c0329406bb28109c07c6e23e5e3e0fa618a95d7
https://git.kernel.org/stable/c/a52e24c7fcc3c5ce3588a14e3663c00868d36623
https://git.kernel.org/stable/c/6ba3479f9e96b9ad460c7e77abc26dd16e5dec4f
https://git.kernel.org/stable/c/396515db923ad5cbeb179d6b88927870b4cbebb7
https://git.kernel.org/stable/c/5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1
Powered by blists - more mailing lists