Alertas de seguridad

Vulnerabilidades en OpenSSL

OpenSSL es un conjunto de herramientas de calidad comercial con todas las funciones para los protocolos Transport Layer Security (TLS) y Secure Sockets Layer (SSL); además es una biblioteca de criptografía de uso general. OpenSSL tiene una licencia de estilo Apache, lo que básicamente significa que puede obtenerlo y usarlo con fines comerciales y no comerciales sujeto a algunas condiciones de licencia simples.

Investigadores han reportado dos vulnerabilidades relacionadas con OpenSSL que de ser aprovechadas podrían permitir la realización de ataques de tipo denegación de servicio (DoS), así como también eludir por completo la verificación de un certificado al no comprobar correctamente la validez del certificado de la Autoridad de Certificación (CA).

  • CVE-2021-3449: Una falla de denegación de servicio (DoS) debido a la des-referenciación del puntero NULL que solo afecta a las instancias del servidor OpenSSL, no a los clientes.
  • CVE-2021-3450: Una vulnerabilidad de validación de certificado de autoridad de certificación (CA) incorrecta que afecta tanto al servidor como a las instancias del cliente.
Deref de puntero NULL en el procesamiento de algoritmos de firma (CVE-2021-3449)

Un servidor OpenSSL TLS puede fallar si un cliente envía un mensaje ClientHello de renegociación creado con fines malintencionados. Si una renegociación de TLSv1.2 ClientHello omite la extensión signature_algorithms, (donde estaba presente en la ClientHello inicial), pero incluye una extensión signature_algorithms_cert, se producirá una des-referencia del puntero NULL, lo que provocará un bloqueo y un ataque de denegación de servicio.
 

Un servidor solo es vulnerable si tiene TLSv1.2 y la renegociación habilitada, (que es la configuración predeterminada). Los clientes de OpenSSL TLS y OpenSSL 1.0.2 no se ven afectados por este problema. Todas las versiones de OpenSSL 1.1.1 se ven afectadas por este fallo. Los usuarios de estas versiones deben actualizar a OpenSSL 1.1.1k. Este problema fue informado a OpenSSL el 17 de marzo de 2021 por Nokia y La solución fue desarrollada por Peter Kästle y Samuel Sapalski de Nokia.

Omisión de verificación de certificado de CA con X509_V_FLAG_X509_STRICT (CVE-2021-3450)

Se relaciona con un indicador X509_V_FLAG_X509_STRICT que permite verificaciones de seguridad adicionales de los certificados presentes en una cadena de certificados. Si bien esta marca no está configurada de manera predeterminada, un error en la implementación significó que OpenSSL no pudo verificar que "los certificados que no son de CA no deben poder emitir otros certificados", lo que resultó en una omisión de certificados.

Para verse afectada, una aplicación debe establecer explícitamente el X509_V_FLAG_X509_STRICT en la marca de verificación y no se estableció un propósito para la verificación del certificado o, en el caso de un cliente o servidor TLS de aplicaciones, anulan el propósito predeterminado. Las versiones 1.1.1h de OpenSSL y posteriores se ven afectadas por este fallo. Usuarios de estas versiones deben actualizarse a OpenSSL 1.1.1k. Este problema fue informado a OpenSSL el 18 de marzo de 2021 por Benjamin Kaduk de Akamai y fue descubierto por Xiang Ding y otros en Akamai. La solución fue desarrollada por Tomáš Mráz.

Acciones recomendadas

Aunque ninguno de los problemas afecta a OpenSSL 1.0.2, también vale la pena señalar que la versión ha estado fuera de soporte desde el 1 de enero de 2020 y ya no recibe actualizaciones. Se recomienda a las aplicaciones que dependen de una versión vulnerable de OpenSSL que apliquen los parches de OpenSSL a la versión 1.1.1k para mitigar el riesgo asociado con las fallas.