Possibilità di generare firme ECDSA fittizie in Java SE. Vulnerabilità in MySQL, VirtualBox e Solaris

Oracle ha pubblicato un rilascio programmato di aggiornamenti dei propri prodotti (Critical Patch Update), volti ad eliminare problemi critici e vulnerabilità. L'aggiornamento di aprile ha eliminato un totale di 520 vulnerabilità.

Alcuni problemi:

  • 6 Problemi di sicurezza in Java SE. Tutte le vulnerabilità possono essere sfruttate da remoto senza autenticazione e colpiscono ambienti che consentono l'esecuzione di codice non affidabile. A due problemi è stato assegnato un livello di gravità pari a 7.5. Le vulnerabilità sono state risolte nelle versioni Java SE 18.0.1, 11.0.15 e 8u331.

    Uno dei problemi (CVE-2022-21449) consente di generare una firma digitale ECDSA fittizia utilizzando i parametri della curva zero durante la generazione (se i parametri sono zero, la curva va all'infinito, quindi i valori zero sono esplicitamente vietati in la specifica). Le librerie Java non controllavano i valori nulli dei parametri ECDSA, quindi durante l'elaborazione delle firme con parametri nulli, Java li considerava validi in tutti i casi).

    La vulnerabilità può essere utilizzata tra l'altro per generare certificati TLS fittizi che verranno accettati in Java come corretti, nonché per aggirare l'autenticazione tramite WebAuthn e generare firme JWT e token OIDC fittizi. In altre parole, la vulnerabilità consente di generare certificati e firme universali che verranno accettati e percepiti come corretti nei gestori Java che utilizzano classi java.security.* standard per la verifica. Il problema si presenta nei rami Java 15, 16, 17 e 18. È disponibile un esempio di generazione di certificati falsi. 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 ==> Oggetto firma: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 vulnerabilità nel server MySQL, due delle quali possono essere sfruttate da remoto. Ai problemi più gravi associati all'uso di OpenSSL e protobuf viene assegnato un livello di gravità pari a 7.5. Vulnerabilità meno gravi riguardano l'ottimizzatore, InnoDB, la replica, il plug-in PAM, DDL, DML, FTS e la registrazione. I problemi sono stati risolti nelle versioni MySQL Community Server 8.0.29 e 5.7.38.
  • 5 vulnerabilità in VirtualBox. Ai problemi viene assegnato un livello di gravità compreso tra 7.5 e 3.8 (la vulnerabilità più pericolosa appare solo sulla piattaforma Windows). Le vulnerabilità sono state corrette nell'aggiornamento VirtualBox 6.1.34.
  • 6 vulnerabilità in Solaris. I problemi riguardano il kernel e le utilità. Al problema più grave nei servizi pubblici viene assegnato il livello di pericolo 8.2. Le vulnerabilità sono state risolte nell'aggiornamento Solaris 11.4 SRU44.

Fonte: opennet.ru

Aggiungi un commento