CVE-2026-98083 (GCVE-0-2026-98083)

Vulnerability from cvelistv5 – Published: 2026-09-25 10:24 – Updated: 2026-09-25 14:42
VLAI
Title
btrfs: fix transaction use-after-free in raid stripe insertion
Summary
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix transaction use-after-free in raid stripe insertion If allocation of a RAID stripe extent fails, btrfs_insert_one_raid_extent() aborts and ends the transaction before returning -ENOMEM. btrfs_finish_one_ordered(), the production caller through btrfs_insert_raid_extent(), still owns the transaction handle. It handles the error by aborting the transaction and then reaches the common exit path, which ends the transaction again. The premature end can free the handle and drop its transaction reference. Transaction cleanup can then free the transaction before the caller's second abort accesses the handle and transaction, resulting in use-after-free. Keep the abort at the failure site, but let the caller's common exit path end the transaction once, after it has finished using both objects.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 02c372e1f016e5113217597ab37b399c4e407477 , < b185bdf30313e213fa1c887fe22fc3d513c061d9 (git)
Affected: 02c372e1f016e5113217597ab37b399c4e407477 , < 2fbfd02bdfe12b20bd3cc7a3190fb32e3f7072f5 (git)
Affected: 02c372e1f016e5113217597ab37b399c4e407477 , < b7b94923b3b5774d85a2a7c8d6eb9e3e0ef66685 (git)
Affected: 02c372e1f016e5113217597ab37b399c4e407477 , < a8813a923f9e43f788b357fb55c35f7f6ed6f98c (git)
Affected: ab69bf6f8970c09d3735c25094e9471d54365282 (git)
Affected: 6.6.130 , < 6.7 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.7
Unaffected: 0 , < 6.7 (semver)
Unaffected: 6.12.111 , ≤ 6.12.* (semver)
Unaffected: 6.18.53 , ≤ 6.18.* (semver)
Unaffected: 7.2.7 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/raid-stripe-tree.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "b185bdf30313e213fa1c887fe22fc3d513c061d9",
              "status": "affected",
              "version": "02c372e1f016e5113217597ab37b399c4e407477",
              "versionType": "git"
            },
            {
              "lessThan": "2fbfd02bdfe12b20bd3cc7a3190fb32e3f7072f5",
              "status": "affected",
              "version": "02c372e1f016e5113217597ab37b399c4e407477",
              "versionType": "git"
            },
            {
              "lessThan": "b7b94923b3b5774d85a2a7c8d6eb9e3e0ef66685",
              "status": "affected",
              "version": "02c372e1f016e5113217597ab37b399c4e407477",
              "versionType": "git"
            },
            {
              "lessThan": "a8813a923f9e43f788b357fb55c35f7f6ed6f98c",
              "status": "affected",
              "version": "02c372e1f016e5113217597ab37b399c4e407477",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ab69bf6f8970c09d3735c25094e9471d54365282",
              "versionType": "git"
            },
            {
              "lessThan": "6.7",
              "status": "affected",
              "version": "6.6.130",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/raid-stripe-tree.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.7"
            },
            {
              "lessThan": "6.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc2",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.6.130",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix transaction use-after-free in raid stripe insertion\n\nIf allocation of a RAID stripe extent fails,\nbtrfs_insert_one_raid_extent() aborts and ends the transaction before\nreturning -ENOMEM.\n\nbtrfs_finish_one_ordered(), the production caller through\nbtrfs_insert_raid_extent(), still owns the transaction handle. It handles\nthe error by aborting the transaction and then reaches the common exit\npath, which ends the transaction again.\n\nThe premature end can free the handle and drop its transaction reference.\nTransaction cleanup can then free the transaction before the caller\u0027s\nsecond abort accesses the handle and transaction, resulting in\nuse-after-free.\n\nKeep the abort at the failure site, but let the caller\u0027s common exit path\nend the transaction once, after it has finished using both objects."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached through local file writes: buffered or direct writes on a mounted btrfs raid-stripe-tree filesystem create ordered extents, and btrfs_finish_one_ordered() then calls btrfs_insert_raid_extent() -\u003e btrfs_insert_one_raid_extent(). No remote peer supplies input that causes the failure.\nAC:H - The bug fires only when a small, non-memcg-accounted kzalloc(GFP_NOFS) of the stripe extent fails, which needs system-wide memory exhaustion the attacker cannot reliably produce. It also needs a non-default CONFIG_BTRFS_EXPERIMENTAL kernel and an admin-created RAID_STRIPE_TREE filesystem.\nPR:L - Once such a filesystem is mounted, any unprivileged user with write access to a file on it can drive ordered extent completion into btrfs_insert_one_raid_extent(). No capability check exists on this path.\nUI:N - The attacker only issues their own write operations to a filesystem that is already mounted; no mounting of attacker media or other victim action is needed.\nS:U - The corrupted objects are kernel btrfs_trans_handle and btrfs_transaction structures in the same kernel security authority; no VM, IOMMU or sandbox boundary is crossed.\nC:H - After the premature btrfs_end_transaction() frees the trans handle and drops the transaction reference, btrfs_finish_one_ordered() aborts on the freed handle and transaction. That use-after-free of slab objects could be reclaimed by attacker-sprayed data to leak kernel memory.\nI:H - The caller\u0027s btrfs_abort_transaction() writes to the freed handle and transaction, and its second btrfs_end_transaction() frees the handle again. This use-after-write and double free of slab objects is a memory-corruption primitive usable for control-flow hijack.\nA:H - The double end/free of the btrfs transaction handle and use of the freed transaction reliably corrupts slab state or oopses the kernel, taking down the system and the filesystem."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T14:42:03.354Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/b185bdf30313e213fa1c887fe22fc3d513c061d9"
        },
        {
          "url": "https://git.kernel.org/stable/c/2fbfd02bdfe12b20bd3cc7a3190fb32e3f7072f5"
        },
        {
          "url": "https://git.kernel.org/stable/c/b7b94923b3b5774d85a2a7c8d6eb9e3e0ef66685"
        },
        {
          "url": "https://git.kernel.org/stable/c/a8813a923f9e43f788b357fb55c35f7f6ed6f98c"
        }
      ],
      "title": "btrfs: fix transaction use-after-free in raid stripe insertion",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98083",
    "datePublished": "2026-09-25T10:24:19.287Z",
    "dateReserved": "2026-09-25T10:19:56.075Z",
    "dateUpdated": "2026-09-25T14:42:03.354Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "fs/btrfs/raid-stripe-tree.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "b185bdf30313e213fa1c887fe22fc3d513c061d9",
                    "status": "affected",
                    "version": "02c372e1f016e5113217597ab37b399c4e407477",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "2fbfd02bdfe12b20bd3cc7a3190fb32e3f7072f5",
                    "status": "affected",
                    "version": "02c372e1f016e5113217597ab37b399c4e407477",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b7b94923b3b5774d85a2a7c8d6eb9e3e0ef66685",
                    "status": "affected",
                    "version": "02c372e1f016e5113217597ab37b399c4e407477",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a8813a923f9e43f788b357fb55c35f7f6ed6f98c",
                    "status": "affected",
                    "version": "02c372e1f016e5113217597ab37b399c4e407477",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "ab69bf6f8970c09d3735c25094e9471d54365282",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6.7",
                    "status": "affected",
                    "version": "6.6.130",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "fs/btrfs/raid-stripe-tree.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.7"
                  },
                  {
                    "lessThan": "6.7",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.111",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.53",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.7",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix transaction use-after-free in raid stripe insertion\n\nIf allocation of a RAID stripe extent fails,\nbtrfs_insert_one_raid_extent() aborts and ends the transaction before\nreturning -ENOMEM.\n\nbtrfs_finish_one_ordered(), the production caller through\nbtrfs_insert_raid_extent(), still owns the transaction handle. It handles\nthe error by aborting the transaction and then reaches the common exit\npath, which ends the transaction again.\n\nThe premature end can free the handle and drop its transaction reference.\nTransaction cleanup can then free the transaction before the caller\u0027s\nsecond abort accesses the handle and transaction, resulting in\nuse-after-free.\n\nKeep the abort at the failure site, but let the caller\u0027s common exit path\nend the transaction once, after it has finished using both objects."
          }
        ],
        "id": "CVE-2026-98083",
        "lastModified": "2026-09-25T15:18:05.703",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "HIGH",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.0,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.0,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-25T11:17:37.860",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2fbfd02bdfe12b20bd3cc7a3190fb32e3f7072f5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/a8813a923f9e43f788b357fb55c35f7f6ed6f98c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b185bdf30313e213fa1c887fe22fc3d513c061d9"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b7b94923b3b5774d85a2a7c8d6eb9e3e0ef66685"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…