Hi again,

Narrowed it down a bit.
Server's SSL context must be one of TLSv1_xxx types, SSLvX_yyy are not
vulnerable.

regards,
alex

> -----Original Message-----
> From: Alex Pankratov 
> Sent: April 5, 2002 15:20
> To: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
> Subject: Bug in ssl3_read_bytes()
> 
> 
> Hi there,
> 
> the following problem is present in 0.9.6 and 0.9.6c.
> 
> It is possible to put server code into the internal infinite
> loop in ssl3_read_bytes() by sending the following data from
> the client right after establishing TCP connection:
> 
> 01 03 01 00 01 00
> 
> i.e. the record with type 1, version TLSv1, size 1 and dummy payload.
> 
> Calling stack will look like this:
> SSL_accept()
> ssl3_accept()
> ssl3_get_client_hello()
> ssl3_get_message()
> ssl3_read_bytes()
> 
> The problem is in the code that was supposed to ignore unknown TLS
> message types:
> 
>   switch (rr->type)
>     {
>   default:
> #ifndef NO_TLS
>     /* TLS just ignores unknown message types */
>     if (s->version == TLS1_VERSION)
>       {
>       goto start;
>       }
> #endif
>    ...
> 
> The code passes control back to start without resetting 'rr' length,
> thus causing code not to ignore the record and process next one, but
> rather process current one *again*. This yeilds an infinite loop.
> 
> From the first glance, the fix is to add
> 
>   rr->length = 0;
> 
> right before 'goto start;' line from above. This may leak a memory
> though if 'rr' requires explicit disposition via function call.
> 
> I am not subscribed to any openssl maillists, so please reply 
> privately
> if needed.
> 
> regards,
> alex.
> 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to