La posibilidad de generar firmas ECDSA ficticias en Java SE. Vulnerabilidades en MySQL, VirtualBox y Solaris

La empresa Oracle ha publicado una actualización programada de sus productos (Critical Patch Update), destinada a resolver problemas críticos y vulnerabilidades. En la actualización de abril se han corregido un total de 520 vulnerabilidades.

Algunos problemas:

  • 6 problemas de seguridad en Java SE. Todas las vulnerabilidades pueden ser explotadas de forma remota sin necesidad de autenticación y afectan a entornos que permiten la ejecución de código no confiable. Dos de los problemas se han clasificado con un nivel de peligrosidad de 7.5. Las vulnerabilidades se han corregido en las versiones Java SE 18.0.1, 11.0.15 y 8u331.

    Uno de los problemas (CVE-2022-21449) permite generar una firma digital ECDSA falsa, utilizando parámetros de curva nulos durante su generación (si los parámetros son nulos, la curva se va al infinito, por lo que los valores nulos están explícitamente prohibidos en la especificación). En las bibliotecas de Java no había una verificación para los valores nulos de los parámetros ECDSA, por lo tanto, al procesar firmas con parámetros nulos, Java las consideraba válidas en todos los casos.

    Esto incluye la vulnerabilidad que puede ser utilizada para generar firmas falsas de certificados TLS, que serán aceptadas en Java como válidas, así como para eludir la autenticación a través de WebAuthn y generar firmas falsas de JWT y tokens OIDC. En otras palabras, la vulnerabilidad permite generar certificados y firmas universales que serán aceptados y percibidos como válidos en los manejadores de Java que utilizan las clases estándar java.security.* para la verificación. El problema se manifiesta en las ramas Java 15, 16, 17 y 18. Hay un ejemplo disponible para generar certificados falsos. jshell> import java.security.* jshell> var keys = KeyPairGenerator.getInstance("EC").generateKeyPair() keys ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = new byte[64] blankSignature ==> 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 ==> Signature object: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 vulnerabilidades en servidor MySQL, de las cuales dos pueden ser explotadas de forma remota. Los problemas más graves, que están relacionados con el uso de OpenSSL y protobuf, se han clasificado con niveles de peligrosidad de 7.5. Las vulnerabilidades menos peligrosas afectan al optimizador, InnoDB, replicación, plugin PAM, DDL, DML, FTS y gestión de registros. Los problemas se han solucionado en las versiones MySQL Community Server 8.0.29 y 5.7.38.
  • 5 vulnerabilidades en VirtualBox. Se ha asignado un nivel de peligro de 7.5 a 3.8 a los problemas (la vulnerabilidad más peligrosa solo se manifiesta en la plataforma Windows). Las vulnerabilidades se han corregido en la actualización de VirtualBox 6.1.34.
  • 6 vulnerabilidades en Solaris. Los problemas afectan al núcleo y a las utilidades. A la problemática más grave en las utilidades se le ha asignado un nivel de peligro de 8.2. Las vulnerabilidades se han corregido en la actualización Solaris 11.4 SRU44.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster