linux/fs/smb/server
Namjae Jeon f49bca41c1 ksmbd: use the session dialect for rejected binding signatures
When an SMB3 session is referenced by a binding request on an SMB2.1
connection, the request is signed with the existing session's SMB3 signing
algorithm. ksmbd instead verifies it with the new connection's SMB2.1 HMAC
algorithm, so verification fails and the client receives
STATUS_ACCESS_DENIED instead of STATUS_REQUEST_NOT_ACCEPTED.

Select the signing verifier from the referenced session dialect. Permit a
signed SESSION_SETUP without an established channel to use the SMB3 session
signing key for verification. This is limited to SESSION_SETUP so other
unbound requests remain rejected.

The rejected response must use the same existing session algorithm. When an
SMB3 session is referenced on an SMB2.1 connection, sign the SESSION_SETUP
response with the SMB3 signing path rather than the connection's SMB2.1
path.

This fixes smb2.session.bind_negative_smb3to2s.

Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
History 2026-07-06 07:55:41 -05:00
..
mgmt ksmbd: fix multichannel binding and enforce channel limit 2026-07-06 07:55:41 -05:00
asn1.c ksmbd: use __GFP_RETRY_MAYFAIL 2024-11-25 18:58:02 -06:00
asn1.h smb: move client and server files to common directory fs/smb 2023-05-24 16:29:21 -05:00
auth.c ksmbd: handle channel binding with a different user 2026-07-06 07:55:41 -05:00
auth.h ksmbd: fix multichannel binding and enforce channel limit 2026-07-06 07:55:41 -05:00
compress.c ksmbd: compress SMB2 READ responses 2026-06-16 18:57:22 -05:00
compress.h ksmbd: compress SMB2 READ responses 2026-06-16 18:57:22 -05:00
connection.c ksmbd: negotiate and decode SMB2 compression 2026-06-16 18:57:22 -05:00
connection.h ksmbd: negotiate and decode SMB2 compression 2026-06-16 18:57:22 -05:00
crypto_ctx.c ksmbd: Use AES-CMAC library for SMB3 signature calculation 2026-04-22 08:11:23 -05:00
crypto_ctx.h ksmbd: Use AES-CMAC library for SMB3 signature calculation 2026-04-22 08:11:23 -05:00
glob.h ksmbd: use __GFP_RETRY_MAYFAIL 2024-11-25 18:58:02 -06:00
Kconfig smb: smbdirect: move fs/smb/common/smbdirect/ to fs/smb/smbdirect/ 2026-04-22 19:00:41 -05:00
ksmbd_netlink.h ksmbd: add max ip connections parameter 2025-09-30 21:37:54 -05:00
ksmbd_spnego_negtokeninit.asn1 treewide: Add SPDX identifier to IETF ASN.1 modules 2023-10-27 18:04:28 +08:00
ksmbd_spnego_negtokentarg.asn1 treewide: Add SPDX identifier to IETF ASN.1 modules 2023-10-27 18:04:28 +08:00
ksmbd_work.c ksmbd: keep common response iovecs in the work item 2026-06-22 20:15:04 -05:00
ksmbd_work.h ksmbd: fix outstanding credit leak on abort and error paths 2026-06-30 21:29:46 -05:00
Makefile ksmbd: negotiate and decode SMB2 compression 2026-06-16 18:57:22 -05:00
misc.c ksmbd: treat unnamed DATA stream as base file 2026-06-22 20:15:04 -05:00
misc.h ksmbd: fix path resolution in ksmbd_vfs_kern_path_create 2026-06-16 18:57:22 -05:00
ndr.c ksmbd: use __GFP_RETRY_MAYFAIL 2024-11-25 18:58:02 -06:00
ndr.h smb: move client and server files to common directory fs/smb 2023-05-24 16:29:21 -05:00
ntlmssp.h smb: move client and server files to common directory fs/smb 2023-05-24 16:29:21 -05:00
oplock.c ksmbd: snapshot previous oplock state before durable checks 2026-06-30 21:29:46 -05:00
oplock.h ksmbd: avoid level II oplock break notification on unlink 2026-06-22 20:15:05 -05:00
proc.c ksmbd: add procfs interface for runtime monitoring and statistics 2026-02-08 20:25:16 -06:00
server.c ksmbd: use the session dialect for rejected binding signatures 2026-07-06 07:55:41 -05:00
server.h ksmbd: add max ip connections parameter 2025-09-30 21:37:54 -05:00
smb2misc.c ksmbd: fix outstanding credit leak on abort and error paths 2026-06-30 21:29:46 -05:00
smb2ops.c ksmbd: add procfs interface for runtime monitoring and statistics 2026-02-08 20:25:16 -06:00
smb2pdu.c ksmbd: use the session dialect for rejected binding signatures 2026-07-06 07:55:41 -05:00
smb2pdu.h ksmbd: increase SMB3_DEFAULT_TRANS_SIZE from 1MB to 4MB 2026-06-22 20:15:06 -05:00
smb_common.c ksmbd: negotiate and decode SMB2 compression 2026-06-16 18:57:22 -05:00
smb_common.h smb: move filesystem_vol_info into common/fscc.h 2026-04-12 18:07:54 -05:00
smbacl.c ksmbd: validate SID namespace before mapping IDs 2026-07-06 07:55:41 -05:00
smbacl.h ksmbd: fix OOB write in QUERY_INFO for compound requests 2026-03-29 22:07:45 -05:00
stats.h ksmbd: add procfs interface for runtime monitoring and statistics 2026-02-08 20:25:16 -06:00
transport_ipc.c ksmbd: validate response sizes in ipc_validate_msg() 2026-04-18 12:19:59 -05:00
transport_ipc.h ksmbd: Remove unused functions 2025-01-15 23:24:51 -06:00
transport_rdma.c smb: smbdirect: introduce and use include/linux/smbdirect.h 2026-05-01 16:24:25 -05:00
transport_rdma.h smb: smbdirect: introduce and use include/linux/smbdirect.h 2026-05-01 16:24:25 -05:00
transport_tcp.c smb: server: fix max_connections off-by-one in tcp accept path 2026-04-18 12:19:59 -05:00
transport_tcp.h ksmbd: fix use-after-free in __smb2_lease_break_noti() 2025-04-14 22:21:26 -05:00
unicode.c ksmbd: use __GFP_RETRY_MAYFAIL 2024-11-25 18:58:02 -06:00
unicode.h fs/smb: Swing unicode common code from smb->NLS 2023-08-30 08:55:51 -05:00
vfs.c ksmbd: fix n.data memory leak in ksmbd_vfs_set_dos_attrib_xattr 2026-06-30 21:29:45 -05:00
vfs.h smb/server: implement FSCTL_SET_COMPRESSION ioctl handler 2026-06-16 18:57:21 -05:00
vfs_cache.c ksmbd: fix app-instance durable supersede session UAF 2026-06-30 21:29:46 -05:00
vfs_cache.h ksmbd: coalesce sub-15ms write time updates on close 2026-07-06 07:55:41 -05:00
xattr.h ksmbd: Correct typos in multiple comments across various files 2024-09-25 21:33:22 -05:00