Skip to content
Heist/ feed
Back to feed
UnratedFix available

btrfs: fix inode list leak during backref walking at resolve_indirect_refs()

Type: advisorySources: OSV

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 source

Published 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"
}