CVE-2021-4044
Manejo inválido de errores internos de X509_verify_cert() en libssl
- Publicado
- 14 dic 2021
- Actualizado
- 17 sept 2024
- Asignación de CNA
- openssl
- Evidencia observada
- 4 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HAlto · próximos 30 días
- Percentil
- 98,9 %
- Fecha del modelo
- 21 sept 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
Internamente libssl en OpenSSL llama a X509_verify_cert() en el lado del cliente para verificar un certificado suministrado por un servidor. Esta función puede devolver un valor negativo para indicar un error interno (por ejemplo, falta de memoria). Tal valor de retorno negativo es mal manejado por OpenSSL y causará que una función IO (como SSL_connect() o SSL_do_handshake()) no indique el éxito y una llamada posterior a SSL_get_error() devuelva el valor SSL_ERROR_WANT_RETRY_VERIFY. Este valor de retorno sólo debe ser devuelto por OpenSSL si la aplicación ha llamado previamente a SSL_CTX_set_cert_verify_callback(). Como la mayoría de las aplicaciones no hacen esto, el valor de retorno SSL_ERROR_WANT_RETRY_VERIFY de SSL_get_error() será totalmente inesperado y las aplicaciones pueden no comportarse correctamente como resultado. El comportamiento exacto dependerá de la aplicación, pero podría resultar en bloqueos, bucles infinitos u otras respuestas incorrectas similares. Este problema se agrava en combinación con otro fallo en OpenSSL versión 3.0 que hará que X509_verify_cert() indique un error interno cuando procesa una cadena de certificados. Esto ocurrirá cuando un certificado no incluya la extensión de nombre alternativo del sujeto pero cuando una autoridad de certificación haya aplicado restricciones de nombre. Este problema puede producirse incluso con cadenas válidas. Combinando los dos problemas, un atacante podría inducir un comportamiento incorrecto y dependiente de la aplicación. Corregido en OpenSSL versión 3.0.1 (Afectado 3.0.0)
Fuentes
1- CVE-2021-4044Detección
Script de Python para comprobar la versión de OpenSSL para la vulnerabilidad CVE-2021-4044 y probar conexiones SSL/TLS a sitios web especificados por el usuario, con manejo de errores y generación de informes.
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.