Capacitat de generar signatures ECDSA simulades a Java SE. Vulnerabilitats a MySQL, VirtualBox i Solaris

Oracle ha publicat un llançament previst d'actualitzacions dels seus productes (Critical Patch Update), amb l'objectiu d'eliminar problemes crítics i vulnerabilitats. L'actualització d'abril va solucionar un total de 520 vulnerabilitats.

Alguns problemes:

  • 6 Problemes de seguretat a Java SE. Totes les vulnerabilitats es poden explotar de forma remota sense autenticació i afecten entorns que permeten l'execució de codi poc fiable. A dos problemes se'ls ha assignat un nivell de gravetat de 7.5. Les vulnerabilitats s'han resolt a les versions de Java SE 18.0.1, 11.0.15 i 8u331.

    Un dels problemes (CVE-2022-21449) permet generar una signatura digital ECDSA fictícia utilitzant paràmetres de corba zero en generar-la (si els paràmetres són zero, aleshores la corba va a l'infinit, de manera que els valors zero estan explícitament prohibits en l'especificació). Les biblioteques de Java no van comprovar els valors nuls dels paràmetres ECDSA, de manera que quan es processaven signatures amb paràmetres nuls, Java els considerava vàlids en tots els casos).

    Entre altres coses, la vulnerabilitat es pot utilitzar per generar certificats TLS ficticis que s'acceptaran a Java com a correctes, així com per saltar l'autenticació mitjançant WebAuthn i generar signatures JWT i fitxes OIDC ficticis. En altres paraules, la vulnerabilitat us permet generar certificats i signatures universals que s'acceptaran i es percebran com a correctes als controladors Java que utilitzen classes estàndard java.security.* per a la verificació. El problema apareix a les branques 15, 16, 17 i 18 de Java. Hi ha disponible un exemple de generació de certificats falsos. jshell> import java.security.* jshell> var keys = KeyPairGenerator.getInstance("EC").generateKeyPair() keys ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = byte nou[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 ==> Objecte de signatura: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hola, món".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 vulnerabilitats al servidor MySQL, dues de les quals es poden explotar de forma remota. Els problemes més greus associats amb l'ús d'OpenSSL i protobuf se'ls assigna un nivell de gravetat de 7.5. Les vulnerabilitats menys greus afecten l'optimitzador, InnoDB, replicació, connector PAM, DDL, DML, FTS i registre. Els problemes es van resoldre a les versions de MySQL Community Server 8.0.29 i 5.7.38.
  • 5 vulnerabilitats a VirtualBox. Els problemes tenen assignat un nivell de gravetat del 7.5 al 3.8 (la vulnerabilitat més perillosa només apareix a la plataforma Windows). Les vulnerabilitats es solucionen a l'actualització de VirtualBox 6.1.34.
  • 6 vulnerabilitats a Solaris. Els problemes afecten el nucli i les utilitats. Al problema més greu de les utilitats se li assigna un nivell de perillositat de 8.2. Les vulnerabilitats es resolen a l'actualització de Solaris 11.4 SRU44.

Font: opennet.ru

Afegeix comentari