CVE-2026-52911 Overview
CVE-2026-52911 is a vulnerability in the Linux kernel's ksmbd in-kernel SMB server. The flaw resides in how the server scopes the conn->binding slowpath during SMB3 session binding. When a binding SESSION_SETUP sets conn->binding = true, the flag remains set after the call so that ksmbd_session_lookup_all() can locate the session. Because the flag is connection-wide, the global lookup path can also resolve any other session by ID, allowing a connection to reach sessions it has not been bound to as a channel.
Critical Impact
A connection that has not been accepted as a channel of a given SMB session can resolve and operate on that session through the global lookup table, breaking the channel-to-session isolation model enforced by ksmbd.
Affected Products
- Linux kernel ksmbd SMB server module
- Stable kernel branches referenced by commits 1e2bec0, 1ff46c99, 2cc8a4db, 974c1c22, b0da97c0, e3a93ce6, and e74c00c6
- Linux distributions shipping vulnerable ksmbd builds prior to the upstream fix
Discovery Timeline
- 2026-06-21 - CVE CVE-2026-52911 published to NVD
- 2026-06-21 - Last updated in NVD database
Technical Details for CVE-2026-52911
Vulnerability Analysis
The ksmbd kernel module implements SMB3 multichannel support, which allows a single session to be bound across multiple TCP connections. During a binding SESSION_SETUP, the code sets conn->binding = true so that ksmbd_session_lookup_all() can locate the target session even though it has not yet been added to conn->sessions. The flag is connection-wide rather than tied to a specific session identifier.
As a result, after a single legitimate bind operation, the slowpath remains enabled for the connection. Any subsequent global lookup performed on that connection can resolve sessions belonging to other authenticated clients by session ID. This breaks the intended boundary that limits a connection to sessions for which it has been explicitly registered as a channel.
Root Cause
The root cause is overly broad scoping of the conn->binding slowpath. The flag gates access to the global session table without verifying that the connection has actually been installed as a channel of the returned session in sess->ksmbd_chann_list. The check therefore treats "this connection performed a bind once" as equivalent to "this connection is bound to this session," which is incorrect.
Attack Vector
The upstream fix tightens the global lookup so that the returned session must have the current connection registered in its channel xarray sess->ksmbd_chann_list. The channel entry is installed by the existing binding-session path in ntlm_authenticate() and krb5_authenticate() when a SESSION_SETUP completes successfully. This makes the condition a strict equivalent of "this connection has been accepted as a channel of this session." Connections that have not bound to a given session can no longer reach it through the global table. The existing conn->binding gate for entering the slowpath is preserved so that non-binding connections retain fast-path-only behavior, and the session->state check is unchanged.
No verified public proof-of-concept code is available. The vulnerability mechanism is documented in the upstream commits referenced by the Linux Kernel Commit 1e2bec0 and related fixes.
Detection Methods for CVE-2026-52911
Indicators of Compromise
- Unexpected SMB session activity on a connection that has not completed a binding SESSION_SETUP for the target session ID.
- Kernel logs showing ksmbd session lookups resolving session IDs across unrelated client connections.
- Anomalous SMB3 multichannel bind attempts followed by access to sessions owned by other authenticated principals.
Detection Strategies
- Audit running kernel versions against the patched commits listed in the upstream stable tree to confirm whether the ksmbd fix is applied.
- Monitor ksmbd debug output (dyndbg) for session lookup operations that occur on connections without a corresponding entry in sess->ksmbd_chann_list.
- Correlate SMB session IDs with originating connection identifiers in network telemetry to identify cross-connection session reuse.
Monitoring Recommendations
- Enable SMB protocol logging on hosts exposing ksmbd to track SESSION_SETUP flows and channel binding events.
- Restrict exposure of ksmbd to trusted network segments and monitor inbound TCP/445 traffic for unauthorized peers.
- Track kernel package updates on Linux file servers and alert on hosts that remain on unpatched stable branches.
How to Mitigate CVE-2026-52911
Immediate Actions Required
- Update affected Linux kernels to a stable release containing the ksmbd binding scope fix referenced by the upstream commits.
- Disable the ksmbd module on systems where SMB file sharing is not required by unloading ksmbd.ko and removing it from autoload configuration.
- Restrict SMB access to known clients through host firewall rules on TCP/445 until patched kernels are deployed.
Patch Information
The fix is delivered through the upstream Linux stable tree. Relevant commits include Linux Kernel Commit 1e2bec0, Linux Kernel Commit 1ff46c99, Linux Kernel Commit 2cc8a4db, Linux Kernel Commit 974c1c22, Linux Kernel Commit b0da97c0, Linux Kernel Commit e3a93ce6, and Linux Kernel Commit e74c00c6. Apply the kernel updates supplied by your distribution vendor.
Workarounds
- Use a userspace SMB server such as Samba smbd instead of ksmbd until the patched kernel is installed.
- Block inbound SMB traffic at the network perimeter and on host firewalls to limit reachability of the ksmbd listener.
- Disable SMB3 multichannel features on clients and servers where supported to reduce reliance on the session binding path.
# Configuration example: unload ksmbd and block SMB at the host firewall
sudo systemctl stop ksmbd.service
sudo modprobe -r ksmbd
echo 'blacklist ksmbd' | sudo tee /etc/modprobe.d/ksmbd-blacklist.conf
sudo iptables -A INPUT -p tcp --dport 445 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

