298 lines
17 KiB
JSON
298 lines
17 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-80528",
|
|
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "Linux",
|
|
"dateReserved": "2026-08-26T14:34:25.764Z",
|
|
"datePublished": "2026-08-26T14:37:06.781Z",
|
|
"dateUpdated": "2026-10-16T19:26:24.829Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"shortName": "Linux",
|
|
"dateUpdated": "2026-08-27T05:01:23.093Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nceph: avoid fs reclaim while using current->journal_info\n\nhandle_reply() stores a `ceph_mds_request` pointer in\n`current->journal_info` while filling the inode and dentry cache from\nan MDS reply.\n\nAn allocation in this section can enter direct reclaim and prune\ndentries from another filesystem. If this dirties an ext4 inode, ext4\nstarts a JBD2 transaction. JBD2 interprets the Ceph request in\n`current->journal_info` as a journal handle and dereferences the\nrequest's `r_tid` as `h_transaction`, causing a kernel crash, e.g.:\n\n Unable to handle kernel paging request at virtual address 00000000077b4818\n [...]\n Internal error: Oops: 0000000096000004 [#1] SMP\n Modules linked in:\n CPU: 6 UID: 0 PID: 2699135 Comm: kworker/6:3 Tainted: G W 6.18.38-i3 #1113 NONE\n [...]\n Workqueue: ceph-msgr ceph_con_workfn\n pstate: 80400009 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)\n pc : jbd2__journal_start+0x2c/0x208\n lr : __ext4_journal_start_sb+0x100/0x178\n [...]\n Call trace:\n jbd2__journal_start+0x2c/0x208 (P)\n __ext4_journal_start_sb+0x100/0x178\n ext4_dirty_inode+0x3c/0x90\n __mark_inode_dirty+0x58/0x400\n iput.part.0+0x2b0/0x370\n iput+0x18/0x30\n dentry_unlink_inode+0xc0/0x158\n __dentry_kill+0x80/0x250\n shrink_dentry_list+0x90/0x130\n prune_dcache_sb+0x60/0x98\n super_cache_scan+0xe8/0x190\n do_shrink_slab+0x174/0x388\n shrink_slab+0xd8/0x4c0\n shrink_node+0x31c/0x908\n do_try_to_free_pages+0xd0/0x508\n try_to_free_pages+0x11c/0x238\n __alloc_frozen_pages_noprof+0x4d0/0xdd0\n __folio_alloc_noprof+0x18/0x70\n __filemap_get_folio+0x248/0x440\n ceph_readdir_prepopulate+0x570/0x9e8\n mds_dispatch+0x1424/0x1ba0\n ceph_con_process_message+0x74/0xa0\n ceph_con_v1_try_read+0x3a0/0x1510\n ceph_con_workfn+0x260/0x460\n\nEnter a scoped NOFS allocation context and leave it after clearing\n`journal_info`. This prevents filesystem reclaim from recursing into\nanother filesystem while the field contains Ceph-private data."
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"cvssV3_1": {
|
|
"version": "3.1",
|
|
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
|
|
"baseScore": 9.8,
|
|
"baseSeverity": "CRITICAL"
|
|
},
|
|
"scenarios": [
|
|
{
|
|
"lang": "en",
|
|
"value": "AV:N - The crash path runs in the ceph-msgr kworker handling CEPH_MSG_CLIENT_REPLY from the MDS over TCP; on Ceph/Rook/Kubernetes nodes with cephfs mounted, a compromised or malicious MDS peer drives handle_reply() remotely without requiring a victim syscall.\nAC:L - A MDS peer can supply large readdir/lookup replies to force GFP_KERNEL allocations in ceph_fill_trace/ceph_readdir_prepopulate while journal_info is set, making direct reclaim into ext4 dentry pruning likely without rare kernel configs or uncontrollable heap layout.\nPR:N - Exploitation requires no Linux UID, capability, or init-namespace root on the victim; any kernel cephfs client already connected to an attacker-controlled or compromised cluster suffices, consistent with other MDS-reply client CVEs (e.g., CVE-2026-80527).\nUI:N - Once cephfs is mounted (standard in Ceph deployments), MDS replies are processed automatically in kworker context; attackers need not induce a victim to mount media or perform a one-off interactive step at exploitation time.\nS:U - Impact is a kernel oops from JBD2 mistyping current->journal_info on the same host; it does not cross VM, container, or IOMMU boundaries to another security authority.\nC:H - While journal_info holds a ceph_mds_request pointer, ext4 reclaim invokes jbd2__journal_start(), type-confusing that object as a journal handle and dereferencing r_tid as h_transaction—a cross-subsystem type confusion with kernel-pointer read potential per CNA memory-safety guidance.\nI:H - Type confusion of current->journal_info between Ceph and JBD2 misinterprets live ceph_mds_request fields as journal-handle metadata during MDS reply processing; kernel CNA guidance classes type confusion as High integrity impact even when the immediate fault is an oops.\nA:H - The reported ARM64 oops in jbd2__journal_start() from invalid h_transaction dereference reliably crashes the ceph-msgr worker and can panic the node; reclaim during MDS reply handling enables repeated remote-triggered denial-of-service."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "unaffected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"fs/ceph/mds_client.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "ca5fa2380dd90a0adb01580fa6225025351a90f6",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "00c12f57a87f537fa8779258fb3a03003a99963e",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "4dbb2c02558e71f93510a6461d7e798b67426b49",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "c8a21660c3b90864c391164eea5622e7b5b2897c",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "47b745747b3aa39064724a642884f9df924ddf20",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "79d95b43ca090426399651ed580dd9bf2db36ab8",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "b6a0989613072499633e761a1536428a466de7d3",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "315f24088048a51eed341c53be66ea477a3c7d16",
|
|
"lessThan": "5b602344a49e039e792ce5a8923bcc61412ee134",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "affected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"fs/ceph/mds_client.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "4.6",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": "0",
|
|
"lessThan": "4.6",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "5.10.266",
|
|
"lessThanOrEqual": "5.10.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "5.15.217",
|
|
"lessThanOrEqual": "5.15.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.1.184",
|
|
"lessThanOrEqual": "6.1.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.6.153",
|
|
"lessThanOrEqual": "6.6.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.12.105",
|
|
"lessThanOrEqual": "6.12.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.18.46",
|
|
"lessThanOrEqual": "6.18.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "7.1.10",
|
|
"lessThanOrEqual": "7.1.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "7.2",
|
|
"lessThanOrEqual": "*",
|
|
"status": "unaffected",
|
|
"versionType": "original_commit_for_fix"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"cpeApplicability": [
|
|
{
|
|
"nodes": [
|
|
{
|
|
"operator": "OR",
|
|
"negate": false,
|
|
"cpeMatch": [
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "5.10.266"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "5.15.217"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "6.1.184"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "6.6.153"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "6.12.105"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "6.18.46"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "7.1.10"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.6",
|
|
"versionEndExcluding": "7.2"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/ca5fa2380dd90a0adb01580fa6225025351a90f6"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/00c12f57a87f537fa8779258fb3a03003a99963e"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/4dbb2c02558e71f93510a6461d7e798b67426b49"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/c8a21660c3b90864c391164eea5622e7b5b2897c"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/47b745747b3aa39064724a642884f9df924ddf20"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/79d95b43ca090426399651ed580dd9bf2db36ab8"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/b6a0989613072499633e761a1536428a466de7d3"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/5b602344a49e039e792ce5a8923bcc61412ee134"
|
|
}
|
|
],
|
|
"title": "ceph: avoid fs reclaim while using current->journal_info",
|
|
"x_generator": {
|
|
"engine": "bippy-1.2.0"
|
|
}
|
|
},
|
|
"adp": [
|
|
{
|
|
"metrics": [
|
|
{
|
|
"other": {
|
|
"type": "ssvc",
|
|
"content": {
|
|
"id": "CVE-2026-80528",
|
|
"role": "CISA Coordinator",
|
|
"options": [
|
|
{
|
|
"Exploitation": "none"
|
|
},
|
|
{
|
|
"Automatable": "yes"
|
|
},
|
|
{
|
|
"Technical Impact": "total"
|
|
}
|
|
],
|
|
"version": "2.0.3",
|
|
"timestamp": "2026-10-16T19:16:38.118673Z"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"title": "CISA ADP Vulnrichment",
|
|
"providerMetadata": {
|
|
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
|
"shortName": "CISA-ADP",
|
|
"dateUpdated": "2026-10-16T19:26:24.829Z"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |