Patch "fs/cifs: correctly to anonymous authentication via NTLMSSP" has been added to the 3.14-stable tree
This is a note to let you know that I've just added the patch titled
fs/cifs: correctly to anonymous authentication via NTLMSSP
to the 3.14-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:
fs-cifs-correctly-to-anonymous-authentication-via-ntlmssp.patch
and it can be found in the queue-3.14 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
cfda35d98298131bf38fbad3ce4cd5ecb3cf18dbMon Sep 17 00:00:00 2001
From: Stefan Metzmacher <[email protected]>
Date: Tue, 3 May 2016 10:52:30 +0200
Subject: fs/cifs: correctly to anonymous authentication via NTLMSSP
From: Stefan Metzmacher <[email protected]>
commit cfda35d98298131bf38fbad3ce4cd5ecb3cf18db upstream.
See [MS-NLMP] 3.2.5.1.2 Server Receives an AUTHENTICATE_MESSAGE from the Client:
...
Set NullSession to FALSE
If (AUTHENTICATE_MESSAGE.UserNameLen == 0 AND
AUTHENTICATE_MESSAGE.NtChallengeResponse.Length == 0 AND
(AUTHENTICATE_MESSAGE.LmChallengeResponse == Z(1)
OR
AUTHENTICATE_MESSAGE.LmChallengeResponse.Length == 0))
-- Special case: client requested anonymous authentication
Set NullSession to TRUE...
Only server which map unknown users to guest will allow access using a non-null NTChallengeResponse.
For Samba it's the "map to guest = bad user" option.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11913
--- fs/cifs/sess.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-)
fs/cifs/sess.c +20 -12
@@ -399,19 +399,27 @@ int build_ntlmssp_auth_blob(unsigned cha sec_blob->LmChallengeResponse.MaximumLength =0 ; sec_blob->NtChallengeResponse.BufferOffset =cpu_to_le32 (tmp - pbuffer); - rc =setup_ntlmv2_rsp (ses, nls_cp); -if (rc) { -cifs_dbg (VFS ,"Error %d during NTLMSSP authentication\n" , rc); - goto setup_ntlmv2_ret; - } -memcpy (tmp, ses->auth_key.response +CIFS_SESS_KEY_SIZE , - ses->auth_key.len -CIFS_SESS_KEY_SIZE ); - tmp += ses->auth_key.len -CIFS_SESS_KEY_SIZE ; +if (ses->user_name !=NULL ) { + rc =setup_ntlmv2_rsp (ses, nls_cp); +if (rc) { +cifs_dbg (VFS ,"Error %d during NTLMSSP authentication\n" , rc); + goto setup_ntlmv2_ret; + } +memcpy (tmp, ses->auth_key.response +CIFS_SESS_KEY_SIZE , + ses->auth_key.len -CIFS_SESS_KEY_SIZE ); + tmp += ses->auth_key.len -CIFS_SESS_KEY_SIZE ; - sec_blob->NtChallengeResponse.Length = -cpu_to_le16 (ses->auth_key.len -CIFS_SESS_KEY_SIZE ); - sec_blob->NtChallengeResponse.MaximumLength = -cpu_to_le16 (ses->auth_key.len -CIFS_SESS_KEY_SIZE ); + sec_blob->NtChallengeResponse.Length = +cpu_to_le16 (ses->auth_key.len -CIFS_SESS_KEY_SIZE ); + sec_blob->NtChallengeResponse.MaximumLength = +cpu_to_le16 (ses->auth_key.len -CIFS_SESS_KEY_SIZE ); + }else { +/* +* don't send an NT Response for anonymous access +*/ + sec_blob->NtChallengeResponse.Length =0 ; + sec_blob->NtChallengeResponse.MaximumLength =0 ; + }if (ses->domainName ==NULL ) { sec_blob->DomainName.BufferOffset =cpu_to_le32 (tmp - pbuffer);
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/fs-cifs-correctly-to-anonymous-authentication-via-ntlmssp.patch