ksmbd: fix memleak in session setup
authorNamjae Jeon <linkinjeon@kernel.org>
Tue, 2 May 2023 23:26:45 +0000 (08:26 +0900)
committerSteve French <stfrench@microsoft.com>
Thu, 4 May 2023 04:03:01 +0000 (23:03 -0500)
If client send session setup request with unknown NTLMSSP message type,
session that does not included channel can be created. It will cause
session memleak. because ksmbd_sessions_deregister() does not destroy
session if channel is not included. This patch return error response if
client send the request unknown NTLMSSP message type.

Cc: stable@vger.kernel.org
Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-20593
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/ksmbd/smb2pdu.c

index bbc9e92..1d39319 100644 (file)
@@ -1766,6 +1766,10 @@ int smb2_sess_setup(struct ksmbd_work *work)
                                }
                                kfree(sess->Preauth_HashValue);
                                sess->Preauth_HashValue = NULL;
+                       } else {
+                               pr_info_ratelimited("Unknown NTLMSSP message type : 0x%x\n",
+                                               le32_to_cpu(negblob->MessageType));
+                               rc = -EINVAL;
                        }
                } else {
                        /* TODO: need one more negotiation */