Vulnerabilidad criptográfica en Oracle Java

ALERTA: Malware se hace pasar por parche de Java | El Blog de Angelucho

El investigador de seguridad Neil Madden publicó un blog en la que proporcionó detalles sobre una vulnerabilidad recientemente revelada en Java. Esta vulnerabilidad de seguridad se origina en una implementación incorrecta del algoritmo de verificación de firma ECDSA, introducido en Java 15.

Oracle indica que es una explotación remota sin autenticación y de baja complejidad, otorgando una puntuación CVSS de 7.5, sin afectar la confidencialidad o la disponibilidad. El equipo de ForgeRock calificó esta vulnerabilidad con un 10.0 perfecto debido a la amplia gama de impactos en diferentes funcionalidades en un contexto de administración de acceso.

Vulnerabilidad en algoritmo de verificación de firma ECDSA (CVE-2022-21449).

Es una vulnerabilidad en la implementación del algoritmo de firma digital de curva elíptica, causada por una implementación incorrecta del algoritmo de verificación de firma, esto provoca la anulación de la integridad del contenido, que está garantizada por las firmas.

El algoritmo de validación de firmas utiliza una ecuación matemática que consta de la clave pública del firmante, un hash del mensaje y dos valores que se utilizan en las firmas ECDSA, r y s . Una firma se valida cuando ambos lados de la ecuación son iguales.

La implementación defectuosa introducida en Java 15 no verifica que los valores de r y s en uso no sean 0, y aquí es donde comienzan los problemas. Si se permite que r y s sean cero, esto puede causar que ambos lados de la ecuación que los usa para la multiplicación se pongan a cero, creando así una declaración verdadera 0 = 0. En este caso, la firma será validada, permitiendo que un atacante con una firma vacía (llena de ceros) pueda acceder al contenido que deba protegerse.

Si utilizan firmas ECDSA, un atacante puede falsificar fácilmente algunos tipos de certificados SSL y protocolos de enlace (lo que permite la interceptación y modificación de las comunicaciones), JWT firmados, aserciones SAML o tokens de identificación OIDC, e incluso mensajes de autenticación WebAuthn.

La empresa de soluciones JFrog afirma que las versiones anteriores a Java 15 no son vulnerables al ejecutar el exploit original, prueba de concepto sobre Java 11:

CVE-2022-21449 afecta las versiones de Java 15, 16, 17 y 18: ejecute el exploit original para ver que la versión anterior a la 15 no es vulnerable

El resultado de verificación falso indica que la vulnerabilidad no se explotó con éxito.

Productos afectados:

  • Oracle Java SE: 15, 16, 17, 18.
  • Oracle GraalVM Enterprise Edition: 21.3.1, 22.0.0.2.

Recomendaciones:

  • Actualizar Java a la última versión para cada rama: 17.03 o 18.0.1. Tener en cuenta que las versiones de Java 15 y 16 no poseen soporte.

Para mayor información: