CVE-2022-49914
N/A
Summary
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.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < b1dc9019bb5f89abae85645de1a2dd4830c1f8e9 | affected |
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < cded2c89774b99b67c98147ae103ea878c92a206 | affected |
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < 2c0329406bb28109c07c6e23e5e3e0fa618a95d7 | affected |
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < a52e24c7fcc3c5ce3588a14e3663c00868d36623 | affected |
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < 6ba3479f9e96b9ad460c7e77abc26dd16e5dec4f | affected |
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < 396515db923ad5cbeb179d6b88927870b4cbebb7 | affected |
| Linux | Linux | 3301958b7c1dae8f0f5ded63aa881e0b71e78464 < 5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1 | affected |
| Linux | Linux | 3.5 | affected |
| Linux | Linux | 0 < 3.5 | unaffected |
| Linux | Linux | 4.14.299 <= 4.14.* | unaffected |
| Linux | Linux | 4.19.265 <= 4.19.* | unaffected |
| Linux | Linux | 5.4.224 <= 5.4.* | unaffected |
| Linux | Linux | 5.10.154 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.78 <= 5.15.* | unaffected |
| Linux | Linux | 6.0.8 <= 6.0.* | unaffected |
| Linux | Linux | 6.1 <= * | unaffected |
Weaknesses
References
- 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
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.