---
id: CVE-2026-68083
title: 'ksmbd: fix path resolution in ksmbd_vfs_kern_path_create'
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: ks…
severity: critical
cvss: 9.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d <
    a2516be69048856e2a49a51e00975dc59431f95c
  - >-
    Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d <
    489d1ded01425c0fb33418172c0e4e588467526b
  - >-
    Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d <
    c7c884a1305aa4540eb7942a50bd356b34120e1f
  - >-
    Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d <
    98185b3025beeae92d1fe700d5db26b9ac4bf025
  - >-
    Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d <
    1c8951963d8ed357f70f59e0ad4ddce2199d2016
  - Linux 5.15
published: '2026-08-10'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:43:28.789Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-68083'
references:
  - url: 'https://git.kernel.org/stable/c/a2516be69048856e2a49a51e00975dc59431f95c'
  - url: 'https://git.kernel.org/stable/c/489d1ded01425c0fb33418172c0e4e588467526b'
  - url: 'https://git.kernel.org/stable/c/c7c884a1305aa4540eb7942a50bd356b34120e1f'
  - url: 'https://git.kernel.org/stable/c/98185b3025beeae92d1fe700d5db26b9ac4bf025'
  - url: 'https://git.kernel.org/stable/c/1c8951963d8ed357f70f59e0ad4ddce2199d2016'
tags:
  - cve.org
epss: 0.00441
epssPercentile: 0.36956
ingestedAt: '2026-10-21T12:48:53.605Z'
---

## Overview

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

- `Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d < a2516be69048856e2a49a51e00975dc59431f95c`
- `Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d < 489d1ded01425c0fb33418172c0e4e588467526b`
- `Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d < c7c884a1305aa4540eb7942a50bd356b34120e1f`
- `Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d < 98185b3025beeae92d1fe700d5db26b9ac4bf025`
- `Linux >= 265fd1991c1db85fbabaad4946ca0e63e2ae688d < 1c8951963d8ed357f70f59e0ad4ddce2199d2016`
- `Linux 5.15`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
