Desde el fenómeno Heartbleed, la infame vulnerabilidad en OpenSSL que expuso a millones de servidores globalmente, mucha más atención se ha puesto en posibles fallas y/o vulnerabilidades en este software gratuito que cifra comunicaciones, y en otros proyectos open source que reciben pocas inversiones para mejorar.

Lo que no se esperaba era el hecho de que más allá de los avisos y toda la repercusión generada, un mes después de que la vulnerabilidad se hiciera pública, aún existiesen más de 300 mil servidores vulnerables a ella.

Por estos días, y a punto de cumplirse 2 meses desde la irrupción de Heartbleed, OpenSSL ha publicado parches para otras vulnerabilidades encontradas; ninguna es tan grave como la anterior, pero algunas ya tenían más de una década de existencia, y otras son potencialmente graves. Una vez más, es tiempo de actualizar el software.

A continuación detallamos las cinco fallas más importantes:

En el caso de la presencia de un servidor y un cliente vulnerables, un atacante podría explotar dicha vulnerabilidad forzando a ambos a utilizar llaves poco seguras durante el handshake (donde conexiones cifradas son establecidas), lo que le permitiría descifrar y alterar el tráfico entre ambas partes.

Al enviar un handshake tipo DTLS inválido a un cliente OpenSSL DTLS, el código puede ser programado para provocar denegación de servicio. Aplicaciones que utilizan OpenSSL como cliente DTLS son las únicas afectadas por esta falla.

  • CVE-2014-0195: Vulnerabilidad de fragmento DTLS inválido

Al enviar fragmentos DTLS inválidos a un cliente o servidor OpenSSL, es posible causar un ataque de desbordamiento de buffer. Sería posible explotar este desbordamiento para ejecutar códigos arbitrarios.

  • CVE-2014-0198 y CVE-2010-5298: Fallas en la función ssl3_read_bytes y do_ssl3_write (funciones encontradas en el proceso de handshake)

En los pocos casos en los que SSL_MODE_RELEASE_BUFFERS están habilitados, es posible para un atacante causar una denegación de servicios si la variable apuntada por un puntero en una operación de desreferencia es nula. En estas condiciones (que no vienen habilitadas por defecto y son poco comunes), también sería posible para un atacante inyectar datos remotamente debido a la condición de carrera causada por la función ssl3_read_bytes.

  • CVE-2014-3470: Denegación de servicio a través de ECDH (Protocolo de establecimiento de claves de cifrado público)

Clientes OpenSSL TLS que tienen ciphersuites ECDH habilitadas podrían correr el riesgo de un ataque de denegación de servicios.

Más detalles sobre las vulnerabilidades en OpenSSL están disponibles en el sitio de la organización.

Es importante destacar que no todas las versiones son vulnerables a todas las fallas. Lo más importante a tener en cuenta más allá de la versión utilizada de OpenSSL, es que mientras nuevas vulnerabilidades sean encontradas, parches y actualizaciones se ponen a disposición y deben ser instaladas tan pronto como sea posible.