mirror of
https://github.com/yuzu-emu/mbedtls
synced 2024-11-24 04:38:41 +00:00
Parse HelloVerifyRequest: avoid buffer overread on the cookie
In ssl_parse_hello_verify_request, we print cookie_len bytes without checking that there are that many bytes left in ssl->in_msg. This could potentially log data outside the received message (not a big deal) and could potentially read from memory outside of the receive buffer (which would be a remotely exploitable crash).
This commit is contained in:
parent
f0486052b7
commit
01a96d6fd2
1 changed files with 1 additions and 2 deletions
|
@ -1445,8 +1445,6 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl )
|
||||||
}
|
}
|
||||||
|
|
||||||
cookie_len = *p++;
|
cookie_len = *p++;
|
||||||
MBEDTLS_SSL_DEBUG_BUF( 3, "cookie", p, cookie_len );
|
|
||||||
|
|
||||||
if( ( ssl->in_msg + ssl->in_msglen ) - p < cookie_len )
|
if( ( ssl->in_msg + ssl->in_msglen ) - p < cookie_len )
|
||||||
{
|
{
|
||||||
MBEDTLS_SSL_DEBUG_MSG( 1,
|
MBEDTLS_SSL_DEBUG_MSG( 1,
|
||||||
|
@ -1455,6 +1453,7 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl )
|
||||||
MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR );
|
MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR );
|
||||||
return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO );
|
return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO );
|
||||||
}
|
}
|
||||||
|
MBEDTLS_SSL_DEBUG_BUF( 3, "cookie", p, cookie_len );
|
||||||
|
|
||||||
mbedtls_free( ssl->handshake->verify_cookie );
|
mbedtls_free( ssl->handshake->verify_cookie );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue