]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
ksmbd: do not expire session on binding failure
authorHyunwoo Kim <imv4bel@gmail.com>
Mon, 16 Mar 2026 23:52:01 +0000 (08:52 +0900)
committerSteve French <stfrench@microsoft.com>
Sun, 22 Mar 2026 22:15:00 +0000 (17:15 -0500)
commit9bbb19d21ded7d78645506f20d8c44895e3d0fb9
tree4f67ff24b83df8b5fee967858cd8826cbc768f8b
parentc369299895a591d96745d6492d4888259b004a9e
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().

Cc: stable@vger.kernel.org
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/smb2pdu.c