{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-21748", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-12-29T08:45:45.758Z", "datePublished": "2025-02-27T02:12:19.705Z", "dateUpdated": "2026-08-05T11:54:06.626Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:54:06.626Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: fix integer overflows on 32 bit systems\n\nOn 32bit systems the addition operations in ipc_msg_alloc() can\npotentially overflow leading to memory corruption.\nAdd bounds checking using KSMBD_IPC_MAX_PAYLOAD to avoid overflow." } ], "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 vulnerable allocations are driven entirely by length fields in SMB2 SESSION_SETUP, WRITE and IOCTL requests processed by the in-kernel ksmbd SMB server listening on TCP/445. A remote peer reaches the code by sending SMB packets, with no local access required.\nAC:L - The attacker directly supplies the length values (SecurityBufferLength, Write Length, IOCTL InputCount) that feed the wrapping addition, so triggering is deterministic with no race, timing window, or victim state involved. The 32-bit word size is a property of the vulnerable target (common on the ARM32/embedded NAS devices ksmbd targets), not a condition outside attacker control during the attack.\nPR:N - The patched ksmbd_ipc_spnego_authen_request() site sits on the SMB2 SESSION_SETUP Kerberos path, invoked before any credentials are validated, and the IPC$ RPC sites are reachable through guest/anonymous sessions that ksmbd grants without password verification (user_guest() branch), with ksmbd_session_rpc_open() imposing no further check. No valid credentials are needed in the worst-case reasonable deployment.\nUI:N - Exploitation consists solely of the attacker sending crafted SMB2 requests to the listening server; no administrator or local user must open a file, mount a share, or take any other action.\nS:U - The overflow corrupts kernel heap memory belonging to the same kernel security authority that ksmbd already runs in, with no crossing of a VM, IOMMU, or sandbox boundary.\nC:H - The wrapped allocation size makes memcpy() read the full unwrapped length from the request buffer and splatter it across the heap, and the resulting heap corruption is a classic primitive for reading adjacent kernel objects and leaking their contents back through the SMB response path.\nI:H - This is an out-of-bounds heap write whose length and contents are both attacker-controlled, allowing adjacent slab objects (including function pointers and length/permission fields) to be overwritten — a control-flow hijack primitive, not merely stray damage.\nA:H - A memcpy() far past an undersized kvzalloc() allocation reliably corrupts kernel heap metadata and neighbouring objects, producing an oops or panic and taking down the whole system; it can be re-triggered on every new connection." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/smb/server/transport_ipc.c" ], "versions": [ { "version": "0626e6641f6b467447c81dd7678a69c66f7746cf", "lessThan": "f3b9fb2764591d792d160f375851013665a9e820", "status": "affected", "versionType": "git" }, { "version": "0626e6641f6b467447c81dd7678a69c66f7746cf", "lessThan": "760568c1f62ea874e8fb492f9cfa4f47b4b8391e", "status": "affected", "versionType": "git" }, { "version": "0626e6641f6b467447c81dd7678a69c66f7746cf", "lessThan": "82f59d64e6297f270311b16b5dcf65be406d1ea3", "status": "affected", "versionType": "git" }, { "version": "0626e6641f6b467447c81dd7678a69c66f7746cf", "lessThan": "b4b902737746c490258de5cb55cab39e79927a67", "status": "affected", "versionType": "git" }, { "version": "0626e6641f6b467447c81dd7678a69c66f7746cf", "lessThan": "ecb9947fa7c99a77b04d43404c6988a0d326e4a0", "status": "affected", "versionType": "git" }, { "version": "0626e6641f6b467447c81dd7678a69c66f7746cf", "lessThan": "aab98e2dbd648510f8f51b83fbf4721206ccae45", "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/transport_ipc.c" ], "versions": [ { "version": "5.15", "status": "affected" }, { "version": "0", "lessThan": "5.15", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.179", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.129", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.78", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.14", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.13.3", "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": "5.15.179" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15", "versionEndExcluding": "6.1.129" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15", "versionEndExcluding": "6.6.78" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15", "versionEndExcluding": "6.12.14" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15", "versionEndExcluding": "6.13.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15", "versionEndExcluding": "6.14" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/f3b9fb2764591d792d160f375851013665a9e820" }, { "url": "https://git.kernel.org/stable/c/760568c1f62ea874e8fb492f9cfa4f47b4b8391e" }, { "url": "https://git.kernel.org/stable/c/82f59d64e6297f270311b16b5dcf65be406d1ea3" }, { "url": "https://git.kernel.org/stable/c/b4b902737746c490258de5cb55cab39e79927a67" }, { "url": "https://git.kernel.org/stable/c/ecb9947fa7c99a77b04d43404c6988a0d326e4a0" }, { "url": "https://git.kernel.org/stable/c/aab98e2dbd648510f8f51b83fbf4721206ccae45" } ], "title": "ksmbd: fix integer overflows on 32 bit systems", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T19:36:51.420Z" } } ] } }