Abilitatea de a genera semnături false ECDSA în Java SE. Vulnerabilități în MySQL, VirtualBox și Solaris

Oracle a publicat o lansare programată de actualizări ale produselor sale (Critical Patch Update), menită să elimine problemele critice și vulnerabilitățile. Actualizarea din aprilie a remediat un total de 520 de vulnerabilități.

Câteva probleme:

  • 6 Probleme de securitate în Java SE. Toate vulnerabilitățile pot fi exploatate de la distanță fără autentificare și afectează mediile care permit executarea unui cod nedemn de încredere. Două probleme au primit un nivel de severitate de 7.5. Vulnerabilitățile au fost rezolvate în versiunile Java SE 18.0.1, 11.0.15 și 8u331.

    Una dintre probleme (CVE-2022-21449) vă permite să generați o semnătură digitală ECDSA fictivă folosind parametrii curbei zero atunci când o generați (dacă parametrii sunt zero, atunci curba merge la infinit, astfel încât valorile zero sunt interzise în mod explicit în caietul de sarcini). Bibliotecile Java nu au verificat valorile nule ale parametrilor ECDSA, așa că atunci când procesau semnături cu parametri nuli, Java le-a considerat valabile în toate cazurile).

    Printre altele, vulnerabilitatea poate fi folosită pentru a genera certificate TLS fictive care vor fi acceptate în Java ca fiind corecte, precum și pentru a ocoli autentificarea prin WebAuthn și pentru a genera semnături JWT și token-uri OIDC fictive. Cu alte cuvinte, vulnerabilitatea vă permite să generați certificate și semnături universale care vor fi acceptate și percepute ca corecte în handlere Java care utilizează clase standard java.security.* pentru verificare. Problema apare în ramurile Java 15, 16, 17 și 18. Este disponibil un exemplu de generare de certificate false. jshell> import java.security.* jshell> var chei = KeyPairGenerator.getInstance("EC").generateKeyPair() chei ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = new byte[64] blankSignature ==> octet[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 ==> Obiect semnătură: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Bună ziua, lume".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 de vulnerabilități în serverul MySQL, dintre care două pot fi exploatate de la distanță. Cele mai grave probleme asociate cu utilizarea OpenSSL și protobuf li se atribuie un nivel de severitate de 7.5. Vulnerabilitățile mai puțin severe afectează optimizatorul, InnoDB, replicarea, pluginul PAM, DDL, DML, FTS și înregistrarea în jurnal. Problemele au fost rezolvate în versiunile MySQL Community Server 8.0.29 și 5.7.38.
  • 5 vulnerabilități în VirtualBox. Problemelor li se atribuie un nivel de severitate de la 7.5 la 3.8 (cea mai periculoasă vulnerabilitate apare doar pe platforma Windows). Vulnerabilitățile sunt remediate în actualizarea VirtualBox 6.1.34.
  • 6 vulnerabilități în Solaris. Problemele afectează nucleul și utilitățile. Cea mai gravă problemă din utilități i se atribuie un nivel de pericol de 8.2. Vulnerabilitățile sunt rezolvate în actualizarea Solaris 11.4 SRU44.

Sursa: opennet.ru

Adauga un comentariu