Re: [PATCH] cifs: Add client version details to NTLM authenticate message

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tentatively merged into cifs-2.6.git for-next pending review/testing

On Wed, Oct 4, 2023 at 6:18 AM <meetakshisetiyaoss@xxxxxxxxx> wrote:
>
> From: Meetakshi Setiya <msetiya@xxxxxxxxxxxxx>
>
> The NTLM authenticate message currently sets the NTLMSSP_NEGOTIATE_VERSION
> flag but does not populate the VERSION structure. This commit fixes this
> bug by ensuring that the flag is set and the version details are included
> in the message.
>
> Signed-off-by: Meetakshi Setiya <msetiya@xxxxxxxxxxxxx>
> ---
>  fs/smb/client/ntlmssp.h |  4 ++--
>  fs/smb/client/sess.c    | 12 +++++++++---
>  2 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/fs/smb/client/ntlmssp.h b/fs/smb/client/ntlmssp.h
> index 2c5dde2ece58..875de43b72de 100644
> --- a/fs/smb/client/ntlmssp.h
> +++ b/fs/smb/client/ntlmssp.h
> @@ -133,8 +133,8 @@ typedef struct _AUTHENTICATE_MESSAGE {
>         SECURITY_BUFFER WorkstationName;
>         SECURITY_BUFFER SessionKey;
>         __le32 NegotiateFlags;
> -       /* SECURITY_BUFFER for version info not present since we
> -          do not set the version is present flag */
> +       struct  ntlmssp_version Version;
> +       /* SECURITY_BUFFER */
>         char UserString[];
>  } __attribute__((packed)) AUTHENTICATE_MESSAGE, *PAUTHENTICATE_MESSAGE;
>
> diff --git a/fs/smb/client/sess.c b/fs/smb/client/sess.c
> index 79f26c560edf..919ace2d13d4 100644
> --- a/fs/smb/client/sess.c
> +++ b/fs/smb/client/sess.c
> @@ -1060,10 +1060,16 @@ int build_ntlmssp_auth_blob(unsigned char **pbuffer,
>         memcpy(sec_blob->Signature, NTLMSSP_SIGNATURE, 8);
>         sec_blob->MessageType = NtLmAuthenticate;
>
> +       /* send version information in ntlmssp authenticate also */
>         flags = ses->ntlmssp->server_flags | NTLMSSP_REQUEST_TARGET |
> -               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;
> +               NTLMSSP_NEGOTIATE_TARGET_INFO | NTLMSSP_NEGOTIATE_VERSION |
> +               NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED;
> +
> +       sec_blob->Version.ProductMajorVersion = LINUX_VERSION_MAJOR;
> +       sec_blob->Version.ProductMinorVersion = LINUX_VERSION_PATCHLEVEL;
> +       sec_blob->Version.ProductBuild = cpu_to_le16(SMB3_PRODUCT_BUILD);
> +       sec_blob->Version.NTLMRevisionCurrent = NTLMSSP_REVISION_W2K3;
> +
>         tmp = *pbuffer + sizeof(AUTHENTICATE_MESSAGE);
>         sec_blob->NegotiateFlags = cpu_to_le32(flags);
>
> --
> 2.39.2
>


-- 
Thanks,

Steve




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux