ksmbd: fix path resolution in ksmbd_vfs_kern_path_create
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.97, 6.18.40, 7.1.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix path resolution in ksmbd_vfs_kern_path_create The SMB2 open lookup is rooted at the share with LOOKUP_BENEATH, but the create/mkdir/hardlink sink is not: ksmbd_vfs_kern_path_create() builds an absolute path with convert_to_unix_name() and resolves it from AT_FDCWD via start_creating_path(), so a ".." component is walked from the real filesystem root and escapes the export. An authenticated client races a missing path component so the rooted open lookup returns -ENOENT (taking the create branch) while the same component is present (a directory) when the create walk runs; the create then resolves ".." out of the share. Root the create walk at the share like the lookup and rename paths already are: resolve the parent with vfs_path_parent_lookup(..., LOOKUP_BENEATH, &share_conf->vfs_path) and create the final component with start_creating_noperm(). convert_to_unix_name() then has no callers and is removed.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 265fd1991c1db85fbabaad4946ca0e63e2ae688d · fixed in a2516be69048856e2a49a51e00975dc59431f95c; From 265fd1991c1db85fbabaad4946ca0e63e2ae688d · fixed in 489d1ded01425c0fb33418172c0e4e588467526b; From 265fd1991c1db85fbabaad4946ca0e63e2ae688d · fixed in c7c884a1305aa4540eb7942a50bd356b34120e1f; From 265fd1991c1db85fbabaad4946ca0e63e2ae688d · fixed in 98185b3025beeae92d1fe700d5db26b9ac4bf025; From 265fd1991c1db85fbabaad4946ca0e63e2ae688d · fixed in 1c8951963d8ed357f70f59e0ad4ddce2199d2016
- Linux Linux
5.15
- KernelLinux
From 5.15.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.97; From 6.13.0 · fixed in 6.18.40; From 6.19.0 · fixed in 7.1.5