martes, 27 de septiembre de 2016

OpenSSL soluciona múltiples vulnerabilidades

El pasado día 22 de septiembre el proyecto OpenSSL anunció  la publicación de nuevas versiones de OpenSSL destinadas a corregir un total de 14 vulnerabilidades, una calificada de impacto alto, otra moderada y las 12 restantes de importancia baja. Sin embargo, el 26 de septiembre publica otro aviso en el que reconoce que estas actualizaciones introducían una nueva vulnerabilidad crítica y vuelve a publicar nuevas versiones.

OpenSSL es un desarrollo "Open Source" que implementa los protocolos SSL y TLS, y que es utilizada por multitud de programas, tanto para implementar dichos protocolos (por ejemplo, HTTPS) como para emplear sus componentes criptográficos individuales (funciones de cifrado y "hash", generadores de claves, generadores pseudoaleatorios, etc).

El problema más grave de los anunciados el pasado día 22, con CVE-2016-6304, reside en que a un cliente malicioso puede solicita la renegociación de forma continua mediante el envío de una extensión OCSP Status Request excesivamente larga de manera progresiva. Esto provocará un crecimiento de la memoria del servidor fuera de límites, con la consiguiente denegación de servicio por consumo excesivo de memoria. Se ven afectados los servidores con una configuración por defecto incluso si no soportan OCSP. Servidores OpenSSL con versiones anteriores a la 1.0.1g no son vulnerables en la configuración por defecto, solo si la aplicación habilita explícitamente el soporte OCSP.

Otra vulnerabilidad de gravedad media, con CVE-2016-6305, afecta a OpenSSL 1.1.0 debido a que SSL/TLS podrá colgarse durante una llamada a SSL_peek() si el interlocutor envía un registro vacío. Un usuario malicioso podría provocar condiciones de denegación de servicio.

Otras 12 vulnerabilidades corregidas están consideradas de gravedad baja. Los CVEs asignados a todos los problemas son CVE-2016-2177 al CVE-2016-2183 y CVE-2016-6302 al CVE-2016-6308.

Sin embargo, tan solo cuatro días después (26 de septiembre) reconoce que los parches publicados el día 22 introducían una vulnerabilidad crítica. Dada la gravedad del problema decide publicar un nuevo aviso de forma inmediata para evitar actualizaciones a las versiones afectadas. 
"This security update addresses issues that were caused by patches included in our previous security update, released on 22nd September 2016.  Given the Critical severity of one of these flaws we have chosen to release this advisory immediately to prevent upgrades to the affected version, rather than delaying in order to provide our usual public pre-notification."
El problema crítico (CVE-2016-6309) detectado por un investigador de Google, reside en el parche para corregir la vulnerabilidad con CVE-2016-6307. Debido a que da lugar a un problema por el que si se recibe un mensaje de aproximadamente 16k, se reasigna y mueve el búfer para almacenar el mensaje entrante. Desafortunadamente se deja una referencia colgante a la antigua localización lo que resulta en un intento de escritura en la localización anteriormente liberada. Esto puede provocar la caída del proceso (denegación de servicio) y potencialmente ejecutar código arbitrario. Este problema solo afecta a OpenSSL 1.1.0a.

Otra vulnerabilidad de gravedad media, con CVE-2016-7052, se debe a la introducción de controles de filtrado en CRLs ("Certificate Revocation List", Lista de Revocación de Certificados) en OpenSSL 1.1.0, pero se omitieron en OpenSSL 1.0.2i. Esto permite que cualquier intento de usar CRLs en OpenSSL 1.0.2i provocará una caída por una excepción de puntero nulo. Este problema solo afecta a OpenSSL 1.0.2i.

OpenSSL ha publicado las versiones 1.1.0b, 1.0.2j y 1.0.1u disponibles desde

También se recuerda por parte de OpenSSL que las versiones 1.0.1 acaban su soporte a finales de año.

Más información:

OpenSSL Security Advisory [22 Sep 2016]

OpenSSL Security Advisory [26 Sep 2016]



Antonio Ropero
Twitter: @aropero


No hay comentarios:

Publicar un comentario en la entrada