Capacidad para generar firmas ECDSA ficticias en Java SE. Vulnerabilidades en MySQL, VirtualBox y Solaris

Oracle ha publicado un lanzamiento programado de actualizaciones de sus productos (Critical Patch Update), destinado a eliminar problemas y vulnerabilidades críticas. La actualización de abril eliminó un total de 520 vulnerabilidades.

Algunos problemas:

  • 6 problemas de seguridad en Java SE. Todas las vulnerabilidades pueden explotarse de forma remota sin autenticación y afectan a entornos que permiten la ejecución de código no confiable. A dos problemas se les ha asignado un nivel de gravedad de 7.5. Las vulnerabilidades se resolvieron en las versiones Java SE 18.0.1, 11.0.15 y 8u331.

    Uno de los problemas (CVE-2022-21449) le permite generar una firma digital ECDSA ficticia utilizando parámetros de curva cero al generarla (si los parámetros son cero, entonces la curva llega al infinito, por lo que los valores cero están explícitamente prohibidos en la especificación). Las bibliotecas de Java no comprobaron los valores nulos de los parámetros ECDSA, por lo que al procesar firmas con parámetros nulos, Java los consideró válidos en todos los casos).

    Entre otras cosas, la vulnerabilidad se puede utilizar para generar certificados TLS ficticios que serán aceptados en Java como correctos, así como para eludir la autenticación a través de WebAuthn y generar firmas JWT y tokens OIDC ficticios. En otras palabras, la vulnerabilidad le permite generar certificados y firmas universales que serán aceptados y percibidos como correctos en los controladores de Java que utilizan clases estándar java.security.* para la verificación. El problema aparece en las ramas 15, 16, 17 y 18 de Java. Hay disponible un ejemplo de generación de certificados falsos. jshell> importar java.security.* jshell> var claves = KeyPairGenerator.getInstance("EC").generateKeyPair() claves ==> java.security.KeyPair@626b2d4a jshell> var whiteSignature = nuevo byte[64] whiteSignature ==> byte[64] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…, 0, 0, 0, 0, 0, 0, 0, 0 } jshell > var sig = Signature.getInstance("SHA256WithECDSAInP1363Format") sig ==> Objeto de firma: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hola, mundo".getBytes()) jshell> sig.verify(blankSignature) $8 ==> verdadero

  • 26 vulnerabilidades en el servidor MySQL, dos de las cuales pueden explotarse de forma remota. A los problemas más graves asociados con el uso de OpenSSL y protobuf se les asigna un nivel de gravedad de 7.5. Las vulnerabilidades menos graves afectan al optimizador, InnoDB, la replicación, el complemento PAM, DDL, DML, FTS y el registro. Los problemas se resolvieron en las versiones MySQL Community Server 8.0.29 y 5.7.38.
  • 5 vulnerabilidades en VirtualBox. A los problemas se les asigna un nivel de gravedad de 7.5 a 3.8 (la vulnerabilidad más peligrosa aparece sólo en la plataforma Windows). Las vulnerabilidades se solucionan en la actualización de VirtualBox 6.1.34.
  • 6 vulnerabilidades en Solaris. Los problemas afectan al kernel y a las utilidades. Al problema más grave en las empresas de servicios públicos se le asigna un nivel de peligro de 8.2. Las vulnerabilidades se resuelven en la actualización Solaris 11.4 SRU44.

Fuente: opennet.ru

Añadir un comentario