{"id":"CVE-2026-64400","state":"PUBLISHED","title":"ksmbd: prevent path traversal bypass by restricting caseless retry","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: prevent path traversal bypass by restricting caseless retry\n\nksmbd_vfs_path_lookup() enforces LOOKUP_BENEATH to restrict path\nresolution within the share root. When a crafted path attempts to\nescape the share boundary using parent-directory components ('..'),\nvfs_path_parent_lookup() detects this and immediately fails,\nreturning -EXDEV.\n\nHowever, a bug exists in __ksmbd_vfs_kern_path() under caseless mode.\nThe function fails to intercept the -EXDEV error and erroneously\nfalls through to the caseless retry logic, which is intended only\nfor genuinely missing files. During this retry process, the path\nis reconstructed, leading to an unintended LOOKUP_BENEATH bypass\nthat allows write-capable users to create zero-length files or\ndirectories outside the exported share.\n\nFix this by ensuring that the execution only proceeds to the caseless\nlookup retry when the error is specifically -ENOENT. Any other errors,\nsuch as -EXDEV from a path traversal attempt, must be returned immediately.","publishedAt":"2026-07-25T08:50:43.655Z","updatedAt":"2026-10-30T12:27:53.511Z","severity":{"score":8.6,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6927ffe7479c72e7ebf885507227266a75f7c97d","status":"affected","lessThan":"21f050439db157f2afcc19885dec14549ca6ffc0","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"eec1dd2586c4016b7555a5d047db2b3756459fb2","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"a1c331d98313380c38f616c8b28b890ec8ef9c28","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"cfb5a56c218888f9d74165dff0c282cd0be97983","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"8c9a4f1327eb71efbf14842e7b8a6d965077eb67","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"54bab9ba5a9f156ffa9324fcbe5a356fd0242f95","versionType":"git"},{"version":"019aae488dbc67c97a33db03652e20e2c9e3afa7","status":"affected","versionType":"git"},{"version":"ef6cc1c465786b3e4e735d1ab8b616b3e94402df","status":"affected","versionType":"git"},{"version":"6.1.71","status":"affected","lessThan":"6.1.191","versionType":"semver"},{"version":"5.15.145","status":"affected","lessThan":"5.16","versionType":"semver"},{"version":"6.3.10","status":"affected","lessThan":"6.4","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/vfs.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.4","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.4","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.114","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.57","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/vfs.c"]}],"references":["https://git.kernel.org/stable/c/21f050439db157f2afcc19885dec14549ca6ffc0","https://git.kernel.org/stable/c/eec1dd2586c4016b7555a5d047db2b3756459fb2","https://git.kernel.org/stable/c/a1c331d98313380c38f616c8b28b890ec8ef9c28","https://git.kernel.org/stable/c/cfb5a56c218888f9d74165dff0c282cd0be97983","https://git.kernel.org/stable/c/8c9a4f1327eb71efbf14842e7b8a6d965077eb67","https://git.kernel.org/stable/c/54bab9ba5a9f156ffa9324fcbe5a356fd0242f95"],"weaknesses":[],"ingestedAt":"2026-10-30T12:46:06.359Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64400.json","commit":"1f312381e38164a43607eebab851b151dd16861e","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64400","state":"PUBLISHED","datePublished":"2026-07-25T08:50:43.655Z","dateUpdated":"2026-10-30T12:27:53.511Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.785Z"},"containers":{"cna":{"title":"ksmbd: prevent path traversal bypass by restricting caseless retry","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: prevent path traversal bypass by restricting caseless retry\n\nksmbd_vfs_path_lookup() enforces LOOKUP_BENEATH to restrict path\nresolution within the share root. When a crafted path attempts to\nescape the share boundary using parent-directory components ('..'),\nvfs_path_parent_lookup() detects this and immediately fails,\nreturning -EXDEV.\n\nHowever, a bug exists in __ksmbd_vfs_kern_path() under caseless mode.\nThe function fails to intercept the -EXDEV error and erroneously\nfalls through to the caseless retry logic, which is intended only\nfor genuinely missing files. During this retry process, the path\nis reconstructed, leading to an unintended LOOKUP_BENEATH bypass\nthat allows write-capable users to create zero-length files or\ndirectories outside the exported share.\n\nFix this by ensuring that the execution only proceeds to the caseless\nlookup retry when the error is specifically -ENOENT. Any other errors,\nsuch as -EXDEV from a path traversal attempt, must be returned immediately."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"6927ffe7479c72e7ebf885507227266a75f7c97d","status":"affected","lessThan":"21f050439db157f2afcc19885dec14549ca6ffc0","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"eec1dd2586c4016b7555a5d047db2b3756459fb2","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"a1c331d98313380c38f616c8b28b890ec8ef9c28","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"cfb5a56c218888f9d74165dff0c282cd0be97983","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"8c9a4f1327eb71efbf14842e7b8a6d965077eb67","versionType":"git"},{"version":"74d7970febf7e9005375aeda0df821d2edffc9f7","status":"affected","lessThan":"54bab9ba5a9f156ffa9324fcbe5a356fd0242f95","versionType":"git"},{"version":"019aae488dbc67c97a33db03652e20e2c9e3afa7","status":"affected","versionType":"git"},{"version":"ef6cc1c465786b3e4e735d1ab8b616b3e94402df","status":"affected","versionType":"git"},{"version":"6.1.71","status":"affected","lessThan":"6.1.191","versionType":"semver"},{"version":"5.15.145","status":"affected","lessThan":"5.16","versionType":"semver"},{"version":"6.3.10","status":"affected","lessThan":"6.4","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/vfs.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.4","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.4","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.114","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.57","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/vfs.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/21f050439db157f2afcc19885dec14549ca6ffc0"},{"url":"https://git.kernel.org/stable/c/eec1dd2586c4016b7555a5d047db2b3756459fb2"},{"url":"https://git.kernel.org/stable/c/a1c331d98313380c38f616c8b28b890ec8ef9c28"},{"url":"https://git.kernel.org/stable/c/cfb5a56c218888f9d74165dff0c282cd0be97983"},{"url":"https://git.kernel.org/stable/c/8c9a4f1327eb71efbf14842e7b8a6d965077eb67"},{"url":"https://git.kernel.org/stable/c/54bab9ba5a9f156ffa9324fcbe5a356fd0242f95"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H","baseScore":8.6,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable lookup is reached remotely through SMB2 CREATE requests handled by ksmbd over TCP/445.\nAC:L - The attacker controls the crafted parent-directory path and can issue repeated or concurrent requests; any required lookup/create race is attacker-driven.\nPR:N - Although a valid SMB session and writable tree connection are required, ksmbd supports anonymous guest sessions on writable shares, requiring no prior privileges in a reasonable deployment.\nUI:N - Exploitation requires only attacker-generated SMB requests and no action by a victim.\nS:U - The bypass affects filesystems managed by the same host kernel and does not cross a virtualization or comparable security authority boundary.\nC:L - File contents are not exposed, but the out-of-share caseless directory walk and distinguishable errors can disclose limited pathname-existence metadata.\nI:L - The attacker can create chosen zero-length files or directories outside the export, but cannot supply file contents or overwrite arbitrary existing data through this flaw.\nA:H - Repeated creation in an escaped world-writable location can exhaust root-filesystem inodes, storage, or tmpfs memory and cause system-wide service unavailability."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:27:53.511Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.71","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.12.114"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.18.57"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.3.10"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}