btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
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.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 4.14.299, 4.19.265, 5.10.154, 5.15.78, 5.4.224, 6.0.8
- CVEs
- CVE-2022-49914
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 02:51 UTC · Revision 1
Source evidence
btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
core-osv · Original sourcePublished 1 May 2025, 14:10 UTC
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.
osv:CVE-2022-49914
Kernel
Fixed versions: 4.14.299, 4.19.265, 5.4.224, 5.10.154, 5.15.78, 6.0.8
Complete source record
{
"id": "394e056a124a8d742c65479e9b65aa5970f37fff94f27ae83ea8609e47fbff32",
"url": "https://osv.dev/vulnerability/CVE-2022-49914",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "btrfs: fix inode list leak during backref walking at resolve_indirect_refs()",
"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.",
"evidence": "osv:CVE-2022-49914",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "4.14.299",
"evidence": "/affected/1/ranges"
},
{
"value": "4.19.265",
"evidence": "/affected/1/ranges"
},
{
"value": "5.4.224",
"evidence": "/affected/1/ranges"
},
{
"value": "5.10.154",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.78",
"evidence": "/affected/1/ranges"
},
{
"value": "6.0.8",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2022-49914",
"aliases": [
"CVE-2022-49914"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "3301958b7c1dae8f0f5ded63aa881e0b71e78464"
},
{
"fixed": "b1dc9019bb5f89abae85645de1a2dd4830c1f8e9"
},
{
"fixed": "cded2c89774b99b67c98147ae103ea878c92a206"
},
{
"fixed": "2c0329406bb28109c07c6e23e5e3e0fa618a95d7"
},
{
"fixed": "a52e24c7fcc3c5ce3588a14e3663c00868d36623"
},
{
"fixed": "6ba3479f9e96b9ad460c7e77abc26dd16e5dec4f"
},
{
"fixed": "396515db923ad5cbeb179d6b88927870b4cbebb7"
},
{
"fixed": "5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49914.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "3.5.0"
},
{
"fixed": "4.14.299"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.15.0"
},
{
"fixed": "4.19.265"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.20.0"
},
{
"fixed": "5.4.224"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.5.0"
},
{
"fixed": "5.10.154"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.78"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.0.8"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49914.json"
}
}
],
"modified": "2026-10-28T02:30:32.728477904Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/2c0329406bb28109c07c6e23e5e3e0fa618a95d7",
"https://git.kernel.org/stable/c/396515db923ad5cbeb179d6b88927870b4cbebb7",
"https://git.kernel.org/stable/c/5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1",
"https://git.kernel.org/stable/c/6ba3479f9e96b9ad460c7e77abc26dd16e5dec4f",
"https://git.kernel.org/stable/c/a52e24c7fcc3c5ce3588a14e3663c00868d36623",
"https://git.kernel.org/stable/c/b1dc9019bb5f89abae85645de1a2dd4830c1f8e9",
"https://git.kernel.org/stable/c/cded2c89774b99b67c98147ae103ea878c92a206",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49914.json",
"https://nvd.nist.gov/vuln/detail/CVE-2022-49914",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49914.json"
}
},
"related_cves": [
{
"value": "CVE-2022-49914",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 499810,
"published_at": "2025-05-01T14:10:55.581+00:00"
}