CVE-2025-71269 (GCVE-0-2025-71269)
Vulnerability from cvelistv5
Published
2026-03-18 17:40
Modified
2026-08-05 12:12
Summary
In the Linux kernel, the following vulnerability has been resolved: btrfs: do not free data reservation in fallback from inline due to -ENOSPC If we fail to create an inline extent due to -ENOSPC, we will attempt to go through the normal COW path, reserve an extent, create an ordered extent, etc. However we were always freeing the reserved qgroup data, which is wrong since we will use data. Fix this by freeing the reserved qgroup data in __cow_file_range_inline() only if we are not doing the fallback (ret is <= 0).
Impacted products
Vendor Product Version
Linux Linux Version: 94ed938aba557aa798acf496f09afb289b619fcd
Version: 94ed938aba557aa798acf496f09afb289b619fcd
Version: 94ed938aba557aa798acf496f09afb289b619fcd
Version: 94ed938aba557aa798acf496f09afb289b619fcd
Version: 94ed938aba557aa798acf496f09afb289b619fcd
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/inode.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3edd1f6c7c520536b62b2904807033597554dbac",
              "status": "affected",
              "version": "94ed938aba557aa798acf496f09afb289b619fcd",
              "versionType": "git"
            },
            {
              "lessThan": "3a9fd45afadec1fbfec72057b9473d509fa8b68c",
              "status": "affected",
              "version": "94ed938aba557aa798acf496f09afb289b619fcd",
              "versionType": "git"
            },
            {
              "lessThan": "0a1fbbd780f04d1b6cf48dd327c866ba937de1c4",
              "status": "affected",
              "version": "94ed938aba557aa798acf496f09afb289b619fcd",
              "versionType": "git"
            },
            {
              "lessThan": "6de3a371a8b9fd095198b1aa68c22cc10a4c6961",
              "status": "affected",
              "version": "94ed938aba557aa798acf496f09afb289b619fcd",
              "versionType": "git"
            },
            {
              "lessThan": "f8da41de0bff9eb1d774a7253da0c9f637c4470a",
              "status": "affected",
              "version": "94ed938aba557aa798acf496f09afb289b619fcd",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/inode.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.4"
            },
            {
              "lessThan": "4.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.168",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.134",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.81",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.168",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.134",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.81",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.10",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19",
                  "versionStartIncluding": "4.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: do not free data reservation in fallback from inline due to -ENOSPC\n\nIf we fail to create an inline extent due to -ENOSPC, we will attempt to\ngo through the normal COW path, reserve an extent, create an ordered\nextent, etc. However we were always freeing the reserved qgroup data,\nwhich is wrong since we will use data. Fix this by freeing the reserved\nqgroup data in __cow_file_range_inline() only if we are not doing the\nfallback (ret is \u003c= 0)."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - A remote SMB or NFS client can reach the vulnerable Btrfs writeback path through ksmbd or nfsd when writing to a Btrfs-backed export.\nAC:L - The attacker can create and write many sub-sector files while pressuring metadata until inline insertion returns -ENOSPC; no uncontrollable race or memory layout is required.\nPR:N - A guest-writable SMB share or anonymously writable NFS export permits triggering the vulnerable path without prior authentication.\nUI:N - Exploitation requires only attacker-controlled file writes and no action by another user.\nS:U - The vulnerability affects quota enforcement and storage availability within the same kernel and filesystem security authority.\nC:N - The bug only releases quota reservation accounting prematurely and provides no memory disclosure or read primitive.\nI:N - No kernel memory or unauthorized file data is modified, and actual qgroup usage is still accounted at transaction commit.\nA:H - The reservation bypass can permit writes beyond the configured qgroup limit and exhaust shared filesystem capacity, causing persistent ENOSPC failures and service outage."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:12:38.082Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3edd1f6c7c520536b62b2904807033597554dbac"
        },
        {
          "url": "https://git.kernel.org/stable/c/3a9fd45afadec1fbfec72057b9473d509fa8b68c"
        },
        {
          "url": "https://git.kernel.org/stable/c/0a1fbbd780f04d1b6cf48dd327c866ba937de1c4"
        },
        {
          "url": "https://git.kernel.org/stable/c/6de3a371a8b9fd095198b1aa68c22cc10a4c6961"
        },
        {
          "url": "https://git.kernel.org/stable/c/f8da41de0bff9eb1d774a7253da0c9f637c4470a"
        }
      ],
      "title": "btrfs: do not free data reservation in fallback from inline due to -ENOSPC",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-71269",
    "datePublished": "2026-03-18T17:40:58.949Z",
    "dateReserved": "2026-03-17T09:08:18.457Z",
    "dateUpdated": "2026-08-05T12:12:38.082Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…