mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05: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
							
								
									2a7030429b
								
							
						
					
					
						commit
						b51130dd5c
					
				@ -1605,8 +1605,6 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    cookie_len = *p++;
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_BUF( 3, "cookie", p, cookie_len );
 | 
			
		||||
 | 
			
		||||
    if( ( ssl->in_msg + ssl->in_msglen ) - p < cookie_len )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 1,
 | 
			
		||||
@ -1615,6 +1613,7 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl )
 | 
			
		||||
                                    MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR );
 | 
			
		||||
        return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO );
 | 
			
		||||
    }
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_BUF( 3, "cookie", p, cookie_len );
 | 
			
		||||
 | 
			
		||||
    mbedtls_free( ssl->handshake->verify_cookie );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user