Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
265fd1991c1db85fbabaad4946ca0e63e2ae688d to < f1f53dc95edfb3d2072e5e8cd8eb9a2fe7d7f2d0affected265fd1991c1db85fbabaad4946ca0e63e2ae688d to < a2516be69048856e2a49a51e00975dc59431f95caffected265fd1991c1db85fbabaad4946ca0e63e2ae688d to < 489d1ded01425c0fb33418172c0e4e588467526baffected265fd1991c1db85fbabaad4946ca0e63e2ae688d to < c7c884a1305aa4540eb7942a50bd356b34120e1faffected265fd1991c1db85fbabaad4946ca0e63e2ae688d to < 98185b3025beeae92d1fe700d5db26b9ac4bf025affected265fd1991c1db85fbabaad4946ca0e63e2ae688d to < 1c8951963d8ed357f70f59e0ad4ddce2199d2016affected
Linux Linux
Default version status: affected
5.15affected0 to < 5.15unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f1f53dc95edfb3d2072e5e8cd8eb9a2fe7d7f2d0 ↗
- https://git.kernel.org/stable/c/a2516be69048856e2a49a51e00975dc59431f95c ↗
- https://git.kernel.org/stable/c/489d1ded01425c0fb33418172c0e4e588467526b ↗
- https://git.kernel.org/stable/c/c7c884a1305aa4540eb7942a50bd356b34120e1f ↗
- https://git.kernel.org/stable/c/98185b3025beeae92d1fe700d5db26b9ac4bf025 ↗
- https://git.kernel.org/stable/c/1c8951963d8ed357f70f59e0ad4ddce2199d2016 ↗