• Jerome Marchand's avatar
    cifs: dynamic allocation of ntlmssp blob · 44b522de
    Jerome Marchand authored
    commit b8da344b upstream.
    
    In sess_auth_rawntlmssp_authenticate(), the ntlmssp blob is allocated
    statically and its size is an "empirical" 5*sizeof(struct
    _AUTHENTICATE_MESSAGE) (320B on x86_64). I don't know where this value
    comes from or if it was ever appropriate, but it is currently
    insufficient: the user and domain name in UTF16 could take 1kB by
    themselves. Because of that, build_ntlmssp_auth_blob() might corrupt
    memory (out-of-bounds write). The size of ntlmssp_blob in
    SMB2_sess_setup() is too small too (sizeof(struct _NEGOTIATE_MESSAGE)
    + 500).
    
    This patch allocates the blob dynamically in
    build_ntlmssp_auth_blob().
    Signed-off-by: default avatarJerome Marchand <jmarchan@redhat.com>
    Signed-off-by: default avatarSteve French <smfrench@gmail.com>
    [bwh: Backported to 3.16: adjust context, indentation]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    44b522de
ntlmssp.h 5.66 KB