Patch "CIFS: Enable encryption during session setup phase" has been added to the 4.9-stable tree
This is a note to let you know that I've just added the patch titled
CIFS: Enable encryption during session setup phase
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
cifs-enable-encryption-during-session-setup-phase.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
cabfb3680f78981d26c078a26e5c748531257ebbMon Sep 17 00:00:00 2001
From: Pavel Shilovsky <[email protected]>
Date: Mon, 7 Nov 2016 18:20:50 -0800
Subject: CIFS: Enable encryption during session setup phase
From: Pavel Shilovsky <[email protected]>
commit cabfb3680f78981d26c078a26e5c748531257ebb upstream.
In order to allow encryption on SMB connection we need to exchange a session key and generate encryption and decryption keys.
--- fs/cifs/sess.c | 22 ++++++++++------------ fs/cifs/smb2pdu.c | 12 ++---------- 2 files changed, 12 insertions(+), 22 deletions(-)
fs/cifs/sess.c +10 -12
@@ -344,13 +344,12 @@ void build_ntlmssp_negotiate_blob(unsign/* BB is NTLMV2 session security format easier to use here? */ flags =NTLMSSP_NEGOTIATE_56 |NTLMSSP_REQUEST_TARGET |NTLMSSP_NEGOTIATE_128 |NTLMSSP_NEGOTIATE_UNICODE | -NTLMSSP_NEGOTIATE_NTLM |NTLMSSP_NEGOTIATE_EXTENDED_SEC ; -if (ses->server->sign) { +NTLMSSP_NEGOTIATE_NTLM |NTLMSSP_NEGOTIATE_EXTENDED_SEC | +NTLMSSP_NEGOTIATE_SEAL ; +if (ses->server->sign) flags |=NTLMSSP_NEGOTIATE_SIGN ; -if (!ses->server->session_estab || - ses->ntlmssp->sesskey_per_smbsess) - flags |=NTLMSSP_NEGOTIATE_KEY_XCH ; - } +if (!ses->server->session_estab || ses->ntlmssp->sesskey_per_smbsess) + flags |=NTLMSSP_NEGOTIATE_KEY_XCH ; sec_blob->NegotiateFlags =cpu_to_le32 (flags);
@@ -407,13 +406,12 @@ int build_ntlmssp_auth_blob(unsigned cha flags =NTLMSSP_NEGOTIATE_56 |NTLMSSP_REQUEST_TARGET |NTLMSSP_NEGOTIATE_TARGET_INFO |NTLMSSP_NEGOTIATE_128 |NTLMSSP_NEGOTIATE_UNICODE | -NTLMSSP_NEGOTIATE_NTLM |NTLMSSP_NEGOTIATE_EXTENDED_SEC ; -if (ses->server->sign) { +NTLMSSP_NEGOTIATE_NTLM |NTLMSSP_NEGOTIATE_EXTENDED_SEC | +NTLMSSP_NEGOTIATE_SEAL ; +if (ses->server->sign) flags |=NTLMSSP_NEGOTIATE_SIGN ; -if (!ses->server->session_estab || - ses->ntlmssp->sesskey_per_smbsess) - flags |=NTLMSSP_NEGOTIATE_KEY_XCH ; - } +if (!ses->server->session_estab || ses->ntlmssp->sesskey_per_smbsess) + flags |=NTLMSSP_NEGOTIATE_KEY_XCH ; tmp = *pbuffer +sizeof (AUTHENTICATE_MESSAGE ); sec_blob->NegotiateFlags =cpu_to_le32 (flags);
fs/cifs/smb2pdu.c +2 -10
@@ -707,15 +707,13 @@ SMB2_sess_establish_session(struct SMB2_struct cifs_ses *ses = sess_data->ses;mutex_lock (&ses->server->srv_mutex); -if (ses->server->sign && ses->server->ops->generate_signingkey) { +if (ses->server->ops->generate_signingkey) { rc = ses->server->ops->generate_signingkey (ses); -kfree (ses->auth_key.response); - ses->auth_key.response =NULL ;if (rc) {cifs_dbg (FYI ,"SMB3 session key generation failed\n" );mutex_unlock (&ses->server->srv_mutex); - goto keygen_exit; +return rc; } }if (!ses->server->session_estab) {
@@ -729,12 +727,6 @@ SMB2_sess_establish_session(struct SMB2_ ses->status = CifsGood; ses->need_reconnect = false;spin_unlock (&GlobalMid_Lock); - -keygen_exit: -if (!ses->server->sign) { -kfree (ses->auth_key.response); - ses->auth_key.response =NULL ; - }return rc; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/cifs-enable-encryption-during-session-setup-phase.patch