CVE-2026-98083
📛 CVE Title
btrfs: fix transaction use-after-free in raid stripe insertion
Description
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.
Overview
- State
- PUBLISHED
- Assigner (CNA)
- Linux
- CVSS severity
- HIGH
- CVSS score
- 7.0 / 10
- CVSS vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H- Effective score
- 7.0 / 10 HIGH source: CNA overview
- CWE(s)
- —
- Reserved
- 2026-09-25
- Published
- 2026-09-25 10:24 UTC
- Last updated
- 2026-09-25 14:42 UTC
- Source
- https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/98xxx/CVE-2026-98083.json
- Linked Threat
- CVE-2026-98083 — btrfs: fix transaction use-after-free in raid stripe insertion
NVD triage scoring NVD CVE 2.0
Layer NVD adds on top of the CNA's CVE record — published / last-modified timestamps, exploitability / impact subscores, and the FIRST.org EPSS probability that this CVE will be exploited in the wild in the next 30 days.
- NVD published
- 2026-09-25 11:17:37 UTC
- NVD last modified
- 2026-09-25 15:18:05 UTC
- NVD CVSS v3.1
- 7.0 / 10 HIGH source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- NVD CVSS vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H- Exploitability subscore
- 1.0 / 10
- Impact subscore
- 5.9 / 10
NVD / KEV / EPSS data refreshed 2026-09-26 04:23 UTC. Re-run the 🛰 Backfill from NVD button above to refresh.
Affected products (2)
| Vendor | Product | Versions | Platforms |
|---|---|---|---|
| Linux | Linux |
02c372e1f016e5113217597ab37b399c4e407477 (affected),
02c372e1f016e5113217597ab37b399c4e407477 (affected),
02c372e1f016e5113217597ab37b399c4e407477 (affected),
02c372e1f016e5113217597ab37b399c4e407477 (affected),
ab69bf6f8970c09d3735c25094e9471d54365282 (affected),
6.6.130 (affected)
|
— |
| Linux | Linux |
6.7 (affected),
0 (unaffected),
6.12.111 (unaffected),
6.18.53 (unaffected),
7.2.7 (unaffected),
7.3-rc2 (unaffected)
|
— |
Vendor references (4)
References embedded in the original CVE record by the assigning CNA.
Web references (0)
DuckDuckGo results ranked by threat-intel / vendor advisory domains. Generated by the 🔎 Find references (web) button above — same flow as the Remediations search.
No web references attached yet.
NVD-tagged references (4)
Reference list NVD curates from the CNA record, vendor advisories, and third-party reports. The tag chips below are NVD's analyst-assigned categories.
- https://git.kernel.org/stable/c/2fbfd02bdfe12b20bd3cc7a3190fb32e3f7072f5 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- https://git.kernel.org/stable/c/a8813a923f9e43f788b357fb55c35f7f6ed6f98c 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- https://git.kernel.org/stable/c/b185bdf30313e213fa1c887fe22fc3d513c061d9 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- https://git.kernel.org/stable/c/b7b94923b3b5774d85a2a7c8d6eb9e3e0ef66685 416baaa9-dc9f-4396-8d5f-8c081fb06d67
AI Forensic Analysis
Only Available for Registered Users. Sign in to view.
Raw JSON
The full cvelistV5 record. Download as CVE-2026-98083.json.
{
"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's\nsecond abort accesses the handle and transaction, resulting in\nuse-after-free.\n\nKeep the abort at the failure site, but let the caller's 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() -> 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's 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"
}