KernelScan.io

HIGH

ksmbd Session Binding DoS

CVE-2026-31476

CVSS 8.2 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H

KernelScan AI7.5HIGH

01

In the Linux kernel, the following vulnerability has been resolved: ksmbd: do not expire session on binding failure When a multichannel session binding request fails (e.g. wrong password), the error path unconditionally sets sess->state = SMB2_SESSION_EXPIRED. However, during binding, sess points to the target session looked up via ksmbd_session_lookup_slowpath() -- which belongs to another connection's user. This allows a remote attacker to invalidate any active session by simply sending a binding request with a wrong password (DoS). Fix this by skipping session expiration when the failed request was a binding attempt, since the session does not belong to the current connection. The reference taken by ksmbd_session_lookup_slowpath() is still correctly released via ksmbd_user_session_put().

02

Engine v0.2.0

Risk summary

Remote attackers can invalidate any active SMB session by sending a multichannel binding request with wrong credentials. This allows denial of service against legitimate users without authentication. Systems running ksmbd SMB server with multichannel support are affected.

Affectedfs/smb/server/smb2pdu.c (ksmbd)

Vulnerability analysis

The vulnerability occurs in ksmbd's SMB2 session setup error handling. When a multichannel binding request fails authentication, the code unconditionally expires the session by setting sess->state = SMB2_SESSION_EXPIRED. However, during binding attempts, sess points to an existing session from another connection looked up via ksmbd_session_lookup_slowpath(), not the current connection's session. This allows attackers to target and expire arbitrary active sessions. The fix adds a check for the SMB2_SESSION_REQ_FLAG_BINDING flag to skip session expiration during failed binding attempts, since the session belongs to a different connection and should not be affected by the current connection's authentication failure.

03

BranchFixed inPatch commit
5.155.15.2094642ea35c03c
6.16.1.168f5300690c23c
6.126.12.801d1888b4a7ae
6.186.18.21a897064a4570
6.196.19.11e0e5edc81b24
6.66.6.1316fafc4c4238e
mainline7.09bbb19d21ded