Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en OpenSSL (CVE-2026-45445)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
09/06/2026
Última modificación:
23/07/2026

Descripción

Resumen del problema: Cuando una aplicación maneja un contexto AES-OCB a través de la interfaz de un solo uso pública EVP_Cipher(), el vector de inicialización (IV) proporcionado por la aplicación es descartado silenciosamente.<br /> <br /> Resumen del impacto: Cada mensaje cifrado bajo la misma clave utiliza el mismo nonce efectivo independientemente del IV proporcionado por el llamador, lo que resulta en la reutilización de (clave, nonce) y la pérdida de confidencialidad. Si la misma ruta de código se utiliza para calcular la etiqueta de autenticación, la etiqueta depende solo del par (clave, IV) y no del texto plano o del texto cifrado, lo que permite la falsificación universal de texto cifrado arbitrario a partir de un único mensaje capturado.<br /> <br /> OpenSSL proporciona dos formas de manejar un cifrado: la interfaz de streaming documentada (EVP_CipherUpdate / EVP_CipherFinal_ex) y una de un solo uso de nivel inferior, EVP_Cipher(), cuya documentación recomienda explícitamente no ser utilizada por las aplicaciones en favor de EVP_CipherUpdate() y EVP_CipherFinal_ex(). El gestor de streaming del proveedor OCB vacía el IV proporcionado por la aplicación en el contexto OCB antes de procesar los datos; el gestor de un solo uso no lo hacía. Cada llamada a EVP_Cipher() en un contexto AES-OCB, por lo tanto, se ejecutaba con el estado de desplazamiento derivado de la clave todo-cero dejado por la inicialización del cifrado, independientemente del IV del llamador.<br /> <br /> Si EVP_EncryptFinal_ex() se utiliza posteriormente para obtener la etiqueta de autenticación, la configuración diferida del IV se ejecuta en ese momento y borra la suma de verificación en ejecución que debería haberse acumulado sobre el texto plano. La etiqueta resultante es una función de (clave, IV) solamente y verifica cualquier texto cifrado producido bajo el mismo par (clave, IV).<br /> <br /> La implementación SSL/TLS de OpenSSL no se ve afectada: AES-OCB no es una suite de cifrado TLS, y libssl no llama a EVP_Cipher() en ningún caso. Las aplicaciones que manejan AES-OCB a través de la API AEAD de streaming documentada (EVP_CipherUpdate / EVP_CipherFinal_ex) no se ven afectadas. Solo las aplicaciones que combinan el cifrado AES-OCB con la API de un solo uso EVP_Cipher() son vulnerables.<br /> <br /> Los módulos FIPS en 4.0, 3.6, 3.5, 3.4 y 3.0 no se ven afectados por este problema, ya que AES-OCB está fuera del límite del módulo FIPS de OpenSSL.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.0.0 (incluyendo) 3.0.21 (excluyendo)
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.4.0 (incluyendo) 3.4.6 (excluyendo)
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.5.0 (incluyendo) 3.5.7 (excluyendo)
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.6.0 (incluyendo) 3.6.3 (excluyendo)
cpe:2.3:a:openssl:openssl:4.0.0:-:*:*:*:*:*:*