Múltiples vulnerabilidades en OpenSSL
INTRODUCCIÓN
OpenSSL ha publicado un aviso que recoge 8 vulnerabilidades: 1 de severidad alta (CVE-2023-0286) y 7 de severidad media, cuya explotación podría permitir a un atacante leer el contenido de la memoria, provocar una denegación de servicio, descifrar los datos de la aplicación enviados a través de una conexión o provocar un fallo en la aplicación.
ANÁLISIS
CVE-2023-0286: Esta vulnerabilidad permite a un atacante remoto realizar un ataque de denegación de servicio (DoS). La vulnerabilidad existe debido a un error de confusión de tipo relacionado con el procesamiento de direcciones X.400 dentro de un GeneralName X.509. Un atacante remoto puede pasar datos especialmente diseñados a la aplicación, desencadenar un error de confusión de tipo y realizar un ataque de denegación de servicio (DoS) o leer el contenido de la memoria.
En la mayoría de los casos, el ataque requiere que el atacante proporcione tanto la cadena del certificado como la CRL, ninguna de las cuales necesita tener una firma válida. Si el atacante sólo controla una de estas entradas, la otra ya debe contener una dirección X.400 como punto de distribución de CRL, lo cual es poco común. Como tal, es más probable que esta vulnerabilidad sólo afecte a aplicaciones que hayan implementado su propia funcionalidad para recuperar CRLs a través de una red.
CVE-2022-4304: Se trata de un ataque de canal lateral que permite determinar los datos de origen a través de la medición de los retrasos de la red al ejecutar operaciones RSA utilizando los modos de propagación incremental PKCS#1 v1.5, RSA-OEAP y RSASVE. El ataque es una variación del método Bleichenbacher, cuya esencia es que el atacante, en función de una reacción diferente del servidor, puede separar los bloques de Oracle de relleno correctos e incorrectos utilizados para alinear los datos cifrados a lo largo del límite del bloque. Un ataque exitoso requiere el envío de una gran cantidad de mensajes de sondeo para su descifrado.
En el aspecto práctico, un ataque, por ejemplo, puede utilizarse para determinar el secreto maestro de una conexión TLS, que el cliente transmite al servidor de forma cifrada. Un atacante que tenga la capacidad de interceptar la conexión entre el cliente y el servidor puede recuperar el valor del secreto maestro enviando una gran cantidad de mensajes de prueba al servidor y analizando su tiempo de procesamiento. Una vez que se determina el secreto maestro, el atacante puede descifrar los datos enviados a través de la conexión TLS en cuestión.
CVE-2022-4203: Lectura de búfer fuera de los límites al verificar certificados X.509 con campo de nombre personalizado. El ataque puede bloquear la aplicación o filtrar el contenido de la memoria de un proceso del lado del cliente si se conecta a un servidor controlado por el atacante, o en el lado del servidor si el servidor solicita la autenticación de un cliente controlado por el atacante.
CVE-2023-0216: Falta de referencia de puntero incorrecta en las funciones d2i_PKCS7(), d2i_PKCS7_bio() y d2i_PKCS7_fp() cuando se manejan datos PKCS7 con formato especial. La vulnerabilidad podría hacer que el proceso se bloquee.
CVE-2023-0217: Desreferencia de puntero NULL al verificar la clave pública DSA en la función EVP_PKEY_public_check().
CVE-2023-0215: acceso de uso después de libre a un área de memoria en la función BIO_new_NDEF utilizada para transmitir datos ASN.1 a través de la interfaz BIO.
CVE-2022-4450: doble liberación de memoria después de llamar a la función PEM_read_bio_ex.
CVE-2023-0401: desreferencia de puntero NULL al validar datos PKCS7.
Versiones afectadas:
OpenSSL: 3.0.0 - 3.0.7, 1.1.1s, 1.1.1 - 1.1.1r, 1.0.2 - 1.0.2zf, 1.1.0 - 1.1.0l, 1.0.0 - 1.0.0t, 1.0.1 - 1.0.1u
RECOMENDACIONES
Actualizar a la versión 3.0.8 ó 1.1.1t
REFERENCIAS
https://www.cybersecurity-help.cz/vdb/SB2023020742
https://blog.desdelinux.net/openssl-3-0-8-llega-corrigiendo-varios-errores-de-seguridad/
https://www.incibe-cert.es/alerta-temprana/avisos-seguridad/multiples-vulnerabilidades-openssl-4
https://www.openssl.org/news/secadv/20230207.txt
https://www.openssl.org/news/openssl-3.0-notes.html