btrfs: fix reloc root cleanup in merge_reloc_roots()
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix reloc root cleanup in merge_reloc_roots() If the root we got has zero root refs in its root item, we are resetting the root's ->reloc_root without using barriers like we do everywhere else. Sashiko complained about this while reviewing another patch, and it's correct (see the Link tag below). Also, we should not clear BTRFS_ROOT_DEAD_RELOC_TREE from the root unless the root points to the reloc root we have. Fix this by using clear_reloc_root(), which issues the memory barrier after setting the root's ->reloc_root to NULL and before clearing the bit BTRFS_ROOT_DEAD_RELOC_TREE from the root.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.271, 5.15.222, 6.1.189, 6.12.111, 6.18.53, 6.6.158
- CVEs
- CVE-2026-93798
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:58 UTC · Revision 1
Source evidence
btrfs: fix reloc root cleanup in merge_reloc_roots()
core-osv · Original sourcePublished 24 Sept 2026, 16:02 UTC
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix reloc root cleanup in merge_reloc_roots() If the root we got has zero root refs in its root item, we are resetting the root's ->reloc_root without using barriers like we do everywhere else. Sashiko complained about this while reviewing another patch, and it's correct (see the Link tag below). Also, we should not clear BTRFS_ROOT_DEAD_RELOC_TREE from the root unless the root points to the reloc root we have. Fix this by using clear_reloc_root(), which issues the memory barrier after setting the root's ->reloc_root to NULL and before clearing the bit BTRFS_ROOT_DEAD_RELOC_TREE from the root.
osv:CVE-2026-93798
Kernel
Fixed versions: 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, 6.18.53
Complete source record
{
"id": "51d13486665e986e30d239be60bb363e14d1ea763aa03757132135809ca83d3b",
"url": "https://osv.dev/vulnerability/CVE-2026-93798",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "btrfs: fix reloc root cleanup in merge_reloc_roots()",
"summary": "In the Linux kernel, the following vulnerability has been resolved: btrfs: fix reloc root cleanup in merge_reloc_roots() If the root we got has zero root refs in its root item, we are resetting the root's ->reloc_root without using barriers like we do everywhere else. Sashiko complained about this while reviewing another patch, and it's correct (see the Link tag below). Also, we should not clear BTRFS_ROOT_DEAD_RELOC_TREE from the root unless the root points to the reloc root we have. Fix this by using clear_reloc_root(), which issues the memory barrier after setting the root's ->reloc_root to NULL and before clearing the bit BTRFS_ROOT_DEAD_RELOC_TREE from the root.",
"evidence": "osv:CVE-2026-93798",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.271",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.222",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.189",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.158",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.111",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.53",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "CVE-2026-93798",
"aliases": [
"CVE-2026-93798"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "1dae7e0e58b484eaa43d530f211098fdeeb0f404"
},
{
"fixed": "29531470b1bf1e8bd2df4941fe913106edbca615"
},
{
"fixed": "415f8665a969d3c906e4fd7c90fcbb4b357886f6"
},
{
"fixed": "ee695a968aa73b1e67ccbf2133dc0e54381d32b2"
},
{
"fixed": "0bc25f0a2d1b3e0a691431c4d7aef36afcd527c5"
},
{
"fixed": "ab48583aa9948205ff9a6470e23dbff74c565e24"
},
{
"fixed": "63d6b1f04cd91c825329712aa526215ffa5d11ca"
},
{
"fixed": "b78fe9563e2d5ae47805f1e5dc722c91fd30e1f8"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.4.54"
},
{
"fixed": "5.5"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "5.7.11"
},
{
"fixed": "5.8"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "ee08663380ffd5a45a1c87580fbc305e8413c235"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "33823378ff2b510fd7b566f25bb18438aeb9b23b"
}
]
}
],
"versions": [
"v5.4.302",
"v5.4.301",
"v5.4.300",
"v5.4.299",
"v5.4.298",
"v5.4.297",
"v5.4.296",
"v5.4.295",
"v5.4.294",
"v5.4.293",
"v5.4.292",
"v5.4.291",
"v5.4.290",
"v5.4.289",
"v5.4.288",
"v5.4.287",
"v5.4.286",
"v5.4.285",
"v5.4.284",
"v5.4.283",
"v5.4.282",
"v5.4.281",
"v5.4.280",
"v5.4.279",
"v5.4.278",
"v5.4.277",
"v5.4.276",
"v5.4.275",
"v5.4.274",
"v5.4.273",
"v5.4.272",
"v5.4.271",
"v5.4.270",
"v5.4.269",
"v5.4.268",
"v5.4.267",
"v5.4.266",
"v5.4.265",
"v5.4.264",
"v5.4.263",
"v5.4.262",
"v5.4.261",
"v5.4.260",
"v5.4.259",
"v5.4.258",
"v5.4.257",
"v5.4.256",
"v5.4.255",
"v5.4.254",
"v5.4.253",
"v5.4.252",
"v5.4.251",
"v5.4.250",
"v5.4.249",
"v5.4.248",
"v5.4.247",
"v5.4.246",
"v5.4.245",
"v5.4.244",
"v5.4.243",
"v5.4.242",
"v5.4.241",
"v5.4.240",
"v5.4.239",
"v5.4.238",
"v5.4.237",
"v5.4.236",
"v5.4.235",
"v5.4.234",
"v5.4.233",
"v5.4.232",
"v5.4.231",
"v5.4.230",
"v5.4.229",
"v5.4.228",
"v5.4.227",
"v5.4.226",
"v5.4.225",
"v5.4.224",
"v5.4.223",
"v5.4.222",
"v5.4.221",
"v5.4.220",
"v5.4.219",
"v5.4.218",
"v5.4.217",
"v5.4.216",
"v5.4.215",
"v5.4.214",
"v5.4.213",
"v5.4.212",
"v5.4.211",
"v5.4.210",
"v5.4.209",
"v5.4.208",
"v5.4.207",
"v5.4.206",
"v5.4.205",
"v5.4.204",
"v5.4.203",
"v5.4.202",
"v5.4.201",
"v5.4.200",
"v5.4.199",
"v5.4.198",
"v5.4.197",
"v5.4.196",
"v5.4.195",
"v5.4.194",
"v5.4.193",
"v5.4.192",
"v5.4.191",
"v5.4.190",
"v5.4.189",
"v5.4.188",
"v5.4.187",
"v5.4.186",
"v5.4.185",
"v5.4.184",
"v5.4.183",
"v5.4.182",
"v5.4.181",
"v5.4.180",
"v5.4.179",
"v5.4.178",
"v5.4.177",
"v5.4.176",
"v5.4.175",
"v5.4.174",
"v5.4.173",
"v5.4.172",
"v5.4.171",
"v5.4.170",
"v5.4.169",
"v5.4.168",
"v5.4.167",
"v5.4.166",
"v5.4.165",
"v5.4.164",
"v5.4.163",
"v5.4.162",
"v5.4.161",
"v5.4.160",
"v5.4.159",
"v5.4.158",
"v5.4.157",
"v5.4.156",
"v5.4.155",
"v5.4.154",
"v5.4.153",
"v5.4.152",
"v5.4.151",
"v5.4.150",
"v5.4.149",
"v5.4.148",
"v5.4.147",
"v5.4.146",
"v5.4.145",
"v5.4.144",
"v5.4.143",
"v5.4.142",
"v5.4.141",
"v5.4.140",
"v5.4.139",
"v5.4.138",
"v5.4.137",
"v5.4.136",
"v5.4.135",
"v5.4.134",
"v5.4.133",
"v5.4.132",
"v5.4.131",
"v5.4.130",
"v5.4.129",
"v5.4.128",
"v5.4.127",
"v5.4.126",
"v5.4.125",
"v5.4.124",
"v5.4.123",
"v5.4.122",
"v5.4.121",
"v5.4.120",
"v5.4.119",
"v5.4.118",
"v5.4.117",
"v5.4.116",
"v5.4.115",
"v5.4.114",
"v5.4.113",
"v5.4.112",
"v5.4.111",
"v5.4.110",
"v5.4.109",
"v5.4.108",
"v5.4.107",
"v5.4.106",
"v5.4.105",
"v5.4.104",
"v5.4.103",
"v5.4.102",
"v5.4.101",
"v5.4.100",
"v5.4.99",
"v5.4.98",
"v5.4.97",
"v5.4.96",
"v5.4.95",
"v5.4.94",
"v5.4.93",
"v5.4.92",
"v5.4.91",
"v5.4.90",
"v5.4.89",
"v5.4.88",
"v5.4.87",
"v5.4.86",
"v5.4.85",
"v5.4.84",
"v5.4.83",
"v5.4.82",
"v5.4.81",
"v5.4.80",
"v5.4.79",
"v5.4.78",
"v5.4.77",
"v5.4.76",
"v5.4.75",
"v5.4.74",
"v5.4.73",
"v5.4.72",
"v5.4.71",
"v5.4.70",
"v5.4.69",
"v5.4.68",
"v5.4.67",
"v5.4.66",
"v5.4.65",
"v5.4.64",
"v5.4.63",
"v5.4.62",
"v5.4.61",
"v5.4.60",
"v5.4.59",
"v5.4.58",
"v5.4.57",
"v5.4.56",
"v5.4.55",
"v5.4.54",
"v5.7.19",
"v5.7.18",
"v5.7.17",
"v5.7.16",
"v5.7.15",
"v5.7.14",
"v5.7.13",
"v5.7.12",
"v5.7.11"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93798.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.8.0"
},
{
"fixed": "5.10.271"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.222"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.189"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.158"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.111"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.53"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93798.json"
}
}
],
"modified": "2026-10-25T17:41:57.599852153Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/0bc25f0a2d1b3e0a691431c4d7aef36afcd527c5",
"https://git.kernel.org/stable/c/29531470b1bf1e8bd2df4941fe913106edbca615",
"https://git.kernel.org/stable/c/415f8665a969d3c906e4fd7c90fcbb4b357886f6",
"https://git.kernel.org/stable/c/63d6b1f04cd91c825329712aa526215ffa5d11ca",
"https://git.kernel.org/stable/c/ab48583aa9948205ff9a6470e23dbff74c565e24",
"https://git.kernel.org/stable/c/b78fe9563e2d5ae47805f1e5dc722c91fd30e1f8",
"https://git.kernel.org/stable/c/ee695a968aa73b1e67ccbf2133dc0e54381d32b2",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93798.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-93798",
"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/2026/93xxx/CVE-2026-93798.json"
}
},
"related_cves": [
{
"value": "CVE-2026-93798",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 98371,
"published_at": "2026-09-24T16:02:31.291+00:00"
}