sábado, 21 de abril de 2012

Desbordamiento de memoria en OpenSSL

Se ha publicado en la página de OpenSSL un aviso donde se anunciaba el descubrimiento y correspondiente publicación del parche a un desbordamiento de memoria intermedia basada en el heap en OpenSSL.

OpenSSL es un conjunto de herramientas de software libre desarrolladas para implementar los protocolos Secure Sockets Layer (SSL v2/v3) y Transport Layer Security (TLS v1), además de una gran cantidad de herramientas criptográficas.

La vulnerabilidad, a la que le ha sido asignado el CVE-2012-2110, aparece a la hora de leer datos en formato DER, presente, entre otros, en certificados X.509 y claves públicas RSA. Un atacante remoto podría enviar a la víctima, por ejemplo, una clave o certificados especialmente manipulados, para así causar una denegación de servicio y, potencialmente, ejecutar código arbitrario.

Concretamente, el fallo se debe a la realización de un casting de una variable C 'signed float' a otra 'signed int' en la función 'asn1_d2i_read_bio'. La conversión de un valor real a otro entero implica truncar el valor de la primera, dando lugar a un desbordamiento de memoria. Para poder explotar de manera correcta la vulnerabilidad, la víctima debería encontrarse ejecutando un sistema operativo de 64 bits.

Su descubridor, el investigador del grupo de seguridad de Google, Tavis Ormandy reportó junto a sus compañeros tanto la vulnerabilidad descubierta como el parche a aplicar. La comunidad encargada del desarrollo de OpenSSL ha subsanado el error, publicando las versiones 0.9.8v, 1.0.1a, y 1.0.0i de OpenSSL.

Más información:

OpenSSL Security Advisory [19 Apr 2012]

[Full-disclosure] incorrect integer conversions in OpenSSL can result in memory corruption.


Javier Rascón Mesa


No hay comentarios:

Publicar un comentario en la entrada