{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-39975", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T07:20:57.150Z", "datePublished": "2025-10-15T07:55:56.951Z", "dateUpdated": "2026-08-05T12:06:43.934Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:06:43.934Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix wrong index reference in smb2_compound_op()\n\nIn smb2_compound_op(), the loop that processes each command's response\nuses wrong indices when accessing response bufferes.\n\nThis incorrect indexing leads to improper handling of command results.\nAlso, if incorrectly computed index is greather than or equal to\nMAX_COMPOUND, it can cause out-of-bounds accesses." } ], "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 code parses SMB2 compound responses received over TCP/445 from the remote server, so a malicious, compromised, or on-path (unsigned/downgraded session) SMB server triggers it purely with network traffic. This matches the established scoring for fs/smb/client response-parsing flaws such as CVE-2026-46155 in this same function.\nAC:L - The server fully controls the per-command NT status codes and payload of each element in the compound chain, so it deterministically arranges \"CLOSE succeeds / QUERY_WSL_EA fails\" and shapes the error-response body that then gets parsed as an EA buffer. No race, memory-layout guess, or condition outside the attacker's control is involved.\nPR:N - The attacker is the server side of the connection (or an on-path injector) and needs no account or privilege on the victim client. Once the client has a session to the server, every subsequent path lookup drives the vulnerable parser.\nUI:N - On an already-mounted share (fstab, autofs/systemd automount, container image, or a server that was compromised after mount), ordinary background filesystem activity such as stat()/lookup reaches smb2_query_path_info() -> smb2_compound_op() with no victim action. This matches UI:N used for the equivalent smb2_compound_op() EA parsing CVE.\nS:U - The corruption and its consequences are confined to the kernel's own security authority on the client; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Treating an error response as a successful QUERY_INFO/QUERY_WSL_EA lets an attacker-chosen OutputBufferOffset/OutputBufferLength drive memcpy() past the end of the response allocation, copying adjacent kernel heap memory into idata->wsl.eas, which wsl_to_fattr() then exposes to userspace as file uid/gid/mode/rdev. This is an out-of-bounds kernel heap read with a user-visible channel.\nI:H - Command results are attributed to the wrong response buffer, so failed server operations are accepted as successful and inode state — attributes, reparse tag, and WSL-derived uid/gid/mode/rdev used for access decisions — is populated from an incorrect, attacker-shaped, partly out-of-bounds buffer. The wrong-index accesses into the rsp_iov array are a memory-safety error class that is not inherently read-limited.\nA:H - The out-of-bounds read past the response buffer can touch unmapped memory and oops the kernel, and parsing an error response as reparse/EA data produces garbage-driven kernel faults. Any such crash is a full availability loss for the client system." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/smb/client/smb2inode.c" ], "versions": [ { "version": "5ddcc9e92d54548219985ce4de88618fb53e14ec", "lessThan": "ba7bcfd52c66dd1c2dfa5142aca7e4a70b62dfa5", "status": "affected", "versionType": "git" }, { "version": "efe8db3ecaa40a8520dc9a54283dcecd82ceea9c", "lessThan": "bfb1e2aad1fecef8320fd71332acde0d53a8d699", "status": "affected", "versionType": "git" }, { "version": "3681c74d342db75b0d641ba60de27bf73e16e66b", "lessThan": "093615fc76063ea08d454ba86677ce64c736e806", "status": "affected", "versionType": "git" }, { "version": "3681c74d342db75b0d641ba60de27bf73e16e66b", "lessThan": "fbe2dc6a9c7318f7263f5e4d50f6272b931c5756", "status": "affected", "versionType": "git" }, { "version": "77aefd1d9b790f60634adebbdcfffbe934f41c34", "status": "affected", "versionType": "git" }, { "version": "6.6.75", "lessThan": "6.6.109", "status": "affected", "versionType": "semver" }, { "version": "6.12.12", "lessThan": "6.12.50", "status": "affected", "versionType": "semver" }, { "version": "6.13.1", "lessThan": "6.14", "status": "affected", "versionType": "semver" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/smb/client/smb2inode.c" ], "versions": [ { "version": "6.14", "status": "affected" }, { "version": "0", "lessThan": "6.14", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.109", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.50", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.16.10", "lessThanOrEqual": "6.16.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.17", "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": "6.6.75", "versionEndExcluding": "6.6.109" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.12.12", "versionEndExcluding": "6.12.50" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.14", "versionEndExcluding": "6.16.10" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.14", "versionEndExcluding": "6.17" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.13.1" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/ba7bcfd52c66dd1c2dfa5142aca7e4a70b62dfa5" }, { "url": "https://git.kernel.org/stable/c/bfb1e2aad1fecef8320fd71332acde0d53a8d699" }, { "url": "https://git.kernel.org/stable/c/093615fc76063ea08d454ba86677ce64c736e806" }, { "url": "https://git.kernel.org/stable/c/fbe2dc6a9c7318f7263f5e4d50f6272b931c5756" } ], "title": "smb: client: fix wrong index reference in smb2_compound_op()", "x_generator": { "engine": "bippy-1.2.0" } } } }