Tushar wrote:
> Hi,
>
> I have a question regarding the buffer overflow checks
> in 0.9.6g.
>
> Why do we always check for
> SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER?
> ^^^
> Shouldn't it be for
> SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER
> ^^^
>
> Line# 437 in get_client_master_key()
> len = 10 + (unsigned long)s->s2->tmp.clear + (unsigned
> long)s->s2->tmp.enc + (unsigned long)keya;
>
> if (len > SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER)
> {
> ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);
> SSLerrSSL_F_GET_CLIENT_MASTER_KEY,SSL_R_MESSAGE_TOO_LONG);
> return -1;
> }
>
>
> As Client-hello (similar check here),
> Client-master-key messages will go in clear, it will
> be with 2 byte header. And as we know 2 byte header
> allows for larger record length than 3 byte header,
> the above checks ideally should have been with
> SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER.
>
> Ya, its true that Client-hello and Client-master-key
> are small messages and will not exceed the max 3-byte-
> header record length too.
>
> Please correct me if I am wrong.
We check for that value because we've just checked the buffer is big
enough to accept that length.
Cheers,
Ben.
--
http://www.apache-ssl.org/ben.html http://www.thebunker.net/
Available for contract work.
"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]