diff options
author | Stefan Metzmacher <metze@samba.org> | 2015-09-30 21:23:25 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2015-12-16 12:56:48 +0100 |
commit | bc2d8592f4e22dd91790bcd78e7a1a99b8a83de5 (patch) | |
tree | 3da616cd686c6ced416e18f93931bcffb9f3a38b /libcli | |
parent | aef4113823a48cffc429ed6b7eb2c01e80fd639a (diff) | |
download | samba-bc2d8592f4e22dd91790bcd78e7a1a99b8a83de5.tar.gz |
CVE-2015-5296: libcli/smb: make sure we require signing when we demand encryption on a session
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11536
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'libcli')
-rw-r--r-- | libcli/smb/smbXcli_base.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index 1f1b6cd4b9d..5fc380e9daf 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -5445,6 +5445,9 @@ uint8_t smb2cli_session_security_mode(struct smbXcli_session *session) if (conn->mandatory_signing) { security_mode |= SMB2_NEGOTIATE_SIGNING_REQUIRED; } + if (session->smb2->should_sign) { + security_mode |= SMB2_NEGOTIATE_SIGNING_REQUIRED; + } return security_mode; } @@ -5876,6 +5879,14 @@ NTSTATUS smb2cli_session_set_channel_key(struct smbXcli_session *session, NTSTATUS smb2cli_session_encryption_on(struct smbXcli_session *session) { + if (!session->smb2->should_sign) { + /* + * We need required signing on the session + * in order to prevent man in the middle attacks. + */ + return NT_STATUS_INVALID_PARAMETER_MIX; + } + if (session->smb2->should_encrypt) { return NT_STATUS_OK; } |