smb3: do not set NTLMSSP_VERSION flag for negotiate not auth request
[ Upstream commit1982655821
] The NTLMSSP_NEGOTIATE_VERSION flag only needs to be sent during the NTLMSSP NEGOTIATE (not the AUTH) request, so filter it out for NTLMSSP AUTH requests. See MS-NLMP 2.2.1.3 This fixes a problem found by the gssntlmssp server. Link: https://github.com/gssapi/gss-ntlmssp/issues/95 Fixes:52d005337b
("smb3: send NTLMSSP version information") Acked-by: Roy Shterman <roy.shterman@gmail.com> Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
55704f087f
commit
ddac66e802
@ -1014,6 +1014,7 @@ setup_ntlm_smb3_neg_ret:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* See MS-NLMP 2.2.1.3 */
|
||||||
int build_ntlmssp_auth_blob(unsigned char **pbuffer,
|
int build_ntlmssp_auth_blob(unsigned char **pbuffer,
|
||||||
u16 *buflen,
|
u16 *buflen,
|
||||||
struct cifs_ses *ses,
|
struct cifs_ses *ses,
|
||||||
@ -1048,7 +1049,8 @@ int build_ntlmssp_auth_blob(unsigned char **pbuffer,
|
|||||||
|
|
||||||
flags = ses->ntlmssp->server_flags | NTLMSSP_REQUEST_TARGET |
|
flags = ses->ntlmssp->server_flags | NTLMSSP_REQUEST_TARGET |
|
||||||
NTLMSSP_NEGOTIATE_TARGET_INFO | NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED;
|
NTLMSSP_NEGOTIATE_TARGET_INFO | NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED;
|
||||||
|
/* we only send version information in ntlmssp negotiate, so do not set this flag */
|
||||||
|
flags = flags & ~NTLMSSP_NEGOTIATE_VERSION;
|
||||||
tmp = *pbuffer + sizeof(AUTHENTICATE_MESSAGE);
|
tmp = *pbuffer + sizeof(AUTHENTICATE_MESSAGE);
|
||||||
sec_blob->NegotiateFlags = cpu_to_le32(flags);
|
sec_blob->NegotiateFlags = cpu_to_le32(flags);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user