Files
vuln-cve/data/2025/21xxx/CVE-2025-21946.json
T

201 lines
11 KiB
JSON

{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2025-21946",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-12-29T08:45:45.790Z",
"datePublished": "2025-04-01T15:41:08.955Z",
"dateUpdated": "2026-08-05T11:55:31.476Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T11:55:31.476Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: fix out-of-bounds in parse_sec_desc()\n\nIf osidoffset, gsidoffset and dacloffset could be greater than smb_ntsd\nstruct size. If it is smaller, It could cause slab-out-of-bounds.\nAnd when validating sid, It need to check it included subauth array size."
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 8.8,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - ksmbd is the in-kernel SMB server listening on TCP/445, and every field driving the bug (osidoffset/gsidoffset/dacloffset, num_subauth, BufferLength) comes directly from a remote client's SMB2_SET_INFO or SMB2_CREATE PDU. No local access is required.\nAC:L - The attacker fully controls the security-descriptor offsets, num_subauth, and the total PDU size, so the out-of-bounds access is deterministic on every request; no race, timing window, or uncontrollable memory-layout condition is involved.\nPR:L - The path requires an established SMB session and a tree connect with KSMBD_TREE_CONN_FLAG_WRITABLE plus an open file handle, so a low-privileged share user (or a guest account where \"map to guest\" is configured) suffices — no administrative rights on the target.\nUI:N - The attacker drives the entire sequence (negotiate, session setup, tree connect, create, set-info) from its own client; no action by any local user or administrator is needed.\nS:U - The out-of-bounds access occurs in the ksmbd kernel thread and its consequences stay within the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The read runs up to ~60 bytes past the request buffer at an attacker-chosen offset, and the leaked 32-bit word is written into the file's owner uid/gid and read straight back via SMB2_QUERY_INFO security, producing a repeatable remote heap-disclosure oracle (compare_sids() on the owner SID gives a second oracle) that can be aimed at sprayed adjacent objects containing pointers or other clients' data.\nI:H - Out-of-bounds kernel memory directly determines security-relevant persistent state — notify_change() sets the file's owner uid/gid and set_posix_acl()/mode are derived from the same unvalidated SID data — so the attacker causes modification of filesystem ownership and permission metadata from memory outside the intended object.\nA:H - With ~4 MB PDUs the request buffer is vmalloc-backed, and the attacker can size it so the allocation ends exactly on a page boundary, making the sub_auth[] read hit the vmalloc guard page and oops the ksmbd kernel thread; on KASAN/hardened builds the slab-out-of-bounds report panics the machine outright."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"fs/smb/server/smbacl.c"
],
"versions": [
{
"version": "0626e6641f6b467447c81dd7678a69c66f7746cf",
"lessThan": "f4ee19528664777af8b842f8f001be98345aa973",
"status": "affected",
"versionType": "git"
},
{
"version": "0626e6641f6b467447c81dd7678a69c66f7746cf",
"lessThan": "c1569dbbe2d43041be9f3fef7ca08bec3b66ad1b",
"status": "affected",
"versionType": "git"
},
{
"version": "0626e6641f6b467447c81dd7678a69c66f7746cf",
"lessThan": "159d059cbcb0e6d0e7a7b34af3862ba09a6b22d1",
"status": "affected",
"versionType": "git"
},
{
"version": "0626e6641f6b467447c81dd7678a69c66f7746cf",
"lessThan": "6a9831180d0b23b5c97e2bd841aefc8f82900172",
"status": "affected",
"versionType": "git"
},
{
"version": "0626e6641f6b467447c81dd7678a69c66f7746cf",
"lessThan": "d6e13e19063db24f94b690159d0633aaf72a0f03",
"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/smb/server/smbacl.c"
],
"versions": [
{
"version": "5.15",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.15",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1.160",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.6.83",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.12.19",
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.13.7",
"lessThanOrEqual": "6.13.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.14",
"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": "5.15",
"versionEndExcluding": "6.1.160"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15",
"versionEndExcluding": "6.6.83"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15",
"versionEndExcluding": "6.12.19"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15",
"versionEndExcluding": "6.13.7"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15",
"versionEndExcluding": "6.14"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/f4ee19528664777af8b842f8f001be98345aa973"
},
{
"url": "https://git.kernel.org/stable/c/c1569dbbe2d43041be9f3fef7ca08bec3b66ad1b"
},
{
"url": "https://git.kernel.org/stable/c/159d059cbcb0e6d0e7a7b34af3862ba09a6b22d1"
},
{
"url": "https://git.kernel.org/stable/c/6a9831180d0b23b5c97e2bd841aefc8f82900172"
},
{
"url": "https://git.kernel.org/stable/c/d6e13e19063db24f94b690159d0633aaf72a0f03"
}
],
"title": "ksmbd: fix out-of-bounds in parse_sec_desc()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
}
}