Possibilité de générer des signatures ECDSA factices dans Java SE. Vulnérabilités dans MySQL, VirtualBox et Solaris

Oracle a publié une version programmée de mises à jour de ses produits (Critical Patch Update), visant à éliminer les problèmes critiques et les vulnérabilités. La mise à jour d'avril a éliminé un total de 520 vulnérabilités.

Quelques problèmes:

  • 6 Problèmes de sécurité dans Java SE. Toutes les vulnérabilités peuvent être exploitées à distance sans authentification et affectent des environnements permettant l'exécution de code non fiable. Deux problèmes ont reçu un niveau de gravité de 7.5. Les vulnérabilités ont été résolues dans les versions Java SE 18.0.1, 11.0.15 et 8u331.

    L'un des problèmes (CVE-2022-21449) permet de générer une signature numérique ECDSA fictive en utilisant des paramètres de courbe nuls lors de sa génération (si les paramètres sont nuls, alors la courbe va à l'infini, donc les valeurs nulles sont explicitement interdites dans la spécification). Les bibliothèques Java ne vérifiaient pas les valeurs nulles des paramètres ECDSA, donc lors du traitement des signatures avec des paramètres nuls, Java les considérait comme valides dans tous les cas).

    Entre autres choses, la vulnérabilité peut être utilisée pour générer des certificats TLS fictifs qui seront acceptés comme corrects dans Java, ainsi que pour contourner l'authentification via WebAuthn et générer des signatures JWT et des jetons OIDC fictifs. En d'autres termes, la vulnérabilité vous permet de générer des certificats et des signatures universels qui seront acceptés et perçus comme corrects dans les gestionnaires Java qui utilisent les classes java.security.* standard pour la vérification. Le problème apparaît dans les branches Java 15, 16, 17 et 18. Un exemple de génération de faux certificats est disponible. jshell> import java.security.* jshell> var clés = KeyPairGenerator.getInstance("EC").generateKeyPair() clés ==> 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 ==> Objet signature : SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 vulnérabilités dans le serveur MySQL, dont deux exploitables à distance. Les problèmes les plus graves associés à l'utilisation d'OpenSSL et de protobuf se voient attribuer un niveau de gravité de 7.5. Des vulnérabilités moins graves affectent l'optimiseur, InnoDB, la réplication, le plugin PAM, DDL, DML, FTS et la journalisation. Les problèmes ont été résolus dans les versions MySQL Community Server 8.0.29 et 5.7.38.
  • 5 vulnérabilités dans VirtualBox. Les problèmes se voient attribuer un niveau de gravité de 7.5 à 3.8 (la vulnérabilité la plus dangereuse apparaît uniquement sur la plateforme Windows). Les vulnérabilités sont corrigées dans la mise à jour VirtualBox 6.1.34.
  • 6 vulnérabilités dans Solaris. Les problèmes affectent le noyau et les utilitaires. Le problème le plus grave dans les services publics se voit attribuer un niveau de danger de 8.2. Les vulnérabilités sont résolues dans la mise à jour Solaris 11.4 SRU44.

Source: opennet.ru

Ajouter un commentaire