data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-98318 in the interactive tracker

CVE-2026-98318

smb: client: validate absolute native symlink targets before NT fixups

7.8 EPSS 0.1% AV:L

Published 2026-10-06 (13 days ago) by the Linux kernel CNA. Subsystem fs/smb. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-98318 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixienot affected6.12.113-1Nothing to do. trixie never shipped the vulnerable code.
Debian 14forkyfixed7.2.8-1Update the kernel and reboot. Fixed in 7.2.8-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.8-1Update the kernel and reboot. Fixed in 7.2.8-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

With symlinkroot unset, an absolute target is copied without conversion to an NT drive path. Later code still assumes an NT prefix is present when modifying the target and calculating the print name length. For "/ab", this causes two failures: sym[5] and path[5] are written past their allocations, and plen -= 2 * poff subtracts an assumed 8-byte prefix from a 6-byte UTF-16 target, wrapping u16 plen to 65534. That underflow causes another overflow: memcpy() copies 65534 bytes into a 24-byte buffer. A user with write access to a mounted share can trigger these bugs with default settings. Validate the NT drive prefix, including an ASCII drive letter, before accessing fixed offsets or subtracting the prefix length.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

fs/smb/client/reparse.c

What this is
COMMON INTERNET FILE SYSTEM CLIENT (CIFS and SMB3)MAINTAINERS section matched on fs/smb/client/ · linux-cifs@vger.kernel.org · Supported
Kernel module
cifs

Check it on the machine

grep -wE 'CONFIG_CIFS|CONFIG_SMBFS' /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w cifs

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian builds this as a loadable module. Every release with an answer below compiles it as a module on every flavour, so whether the code is in the running kernel depends on whether that module is loaded. The build rule could not be established for 1 release, so nothing is claimed about those.

  • bookworm?
  • trixie, forky, sidm
?
not established - no Makefile entry for the affected file
m
a loadable module on every flavour - check lsmod, can be blacklisted

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

Build switches
CONFIG_CIFS, CONFIG_SMBFS
Reads as
all on means the file is compiled; any one off means it is not.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-10-06 (13 days ago)source
CVSS
7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.13%, higher than 2.3% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
fs/smb

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
6.167.2.86913ff607c2b
6.167.323c240d9509e
6.15.600

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
The malformed input is the symlink target string a local user passes to symlink(2) on a CIFS mount (cifs_symlink -> create_reparse_symlink -> create_native_symlink); the SMB server supplies none of the bad data, and the overflow happens before any request is sent.
AC:LAttack complexity, low
With default options (reparse_type defaults to NFS so cifs_symlink_type() returns NATIVE, symlinkroot unset) a target like "/ab" deterministically triggers the plen underflow; detect_directory_symlink_target() returns 0 for absolute targets, so nothing on the path depends on state outside the attacker's control.
PR:LPrivileges required, low
The attacker needs only an ordinary local account with write access to a directory on an already-mounted CIFS share whose server advertises FILE_SUPPORTS_REPARSE_POINTS; cifs is not mountable from user namespaces, so no further privilege is gained there.
UI:NUser interaction, none
The attacker triggers the bug entirely through their own symlink(2) call; no victim action is needed beyond the share already being mounted.
S:UScope, unchanged
Heap corruption in the CIFS client stays within the local kernel's security authority; this is ordinary local privilege escalation or crash with no VM or IOMMU boundary crossed.
C:HConfidentiality impact, high
memcpy(buf->PathBuffer, path+poff, plen) reads 65534 bytes past the small UTF-16 path allocation, and the matching heap overflow can be groomed into read primitives over adjacent slab objects.
I:HIntegrity impact, high
Out-of-bounds heap writes: sym[5]/path[5] past their allocations, and a 65534-byte memcpy into a 24-byte kzalloc buffer after u16 plen and len wrap, corrupting adjacent slab objects in a way usable for control-flow hijack.
A:HAvailability impact, high
The 64 KiB overflow of the kmalloc buffer corrupts large amounts of slab memory and reliably oopses or panics the kernel, and any user with write access to the share can repeat it.