Vulnérabilités OpenSSL : CVE-2022-3602 et CVE-2022-3786

Vulnérabilités OpenSSL

Le 25 octobre, l’équipe d’OpenSSL a annoncé la sortie de OpenSSL 3.0.7 qui contient un patch pour une vulnérabilité critique qui affecte les versions 3.x. d’OpenSSL. Le détail complet du fonctionnement de cette vulnérabilité a été gardé confidentiel jusqu’au 1er Novembre.

Lors de l’annonce officielle, il s’est avéré que cette vulnérabilité a été séparée en deux :

* CVE-2022-3602 : Un stack-buffer overflow de 4 octets qui peut être déclenché lors de la vérification de certificats X.509

* CVE-2022-3786 : Un stack-buffer overflow d’une taille arbitraire qui peut être déclenché lors de la vérification de certificats X.509, mais qui ne laisse pas l’attaquant contrôler les données.

Initialement, le problème a été jugé vulnérable à l’exécution de code à distance. Cependant, dans le cas de la première CVE, les données envoyées sont limitées à 4 octets et la vulnérabilité ne peut donc pas être exploitée dans des environnements communs ; et dans le cas de la deuxième CVE, les données envoyées ne peuvent pas être contrôlées.

Ce qui explique qu’initialement la sévérité a été annoncée comme « CRITICAL », pour ensuite être reclassée comme « HIGH ».

L’équipe d’OpenSSL a confirmé que seules les versions 3.x sont impactées et donc les versions 3.0.0 à 3.0.6. Heureusement, la version 3.X d’OpenSSL est une version assez récente (Septembre 2021) et n’a pas encore été largement adoptée.

Ces vulnérabilités résident dans le code responsable de la certification des certificats X.509. Afin d’être impactée par cette vulnérabilité, la victime (client ou serveur) doit réunir plusieurs conditions :

  • Un certificat malicieux doit être signé par une Autorité de Certification autorisée par la victime,
  • La victime doit valider le certificat malicieux et ignorer une série d’erreurs et de warnings (du navigateur dans le cas d’un client),
  • La victime doit utiliser une version d’OpenSSL impactée par la vulnérabilité.

Dans le cas d’un client, il devrait visiter un site malicieux présentant un certificat contenant l’attaque. De plus, le certificat devrait être signé par une autorité de certification de confiance (CA).

Dans le cas d’un serveur, il pourrait être attaqué s’il supporte l’authentification mutuelle, un scénario où le client et le serveur doivent fournir un certificat X.509 signé et valide, et alors le client pourrait présenter un certificat contenant l’attaque.

Afin de corriger cette vulnérabilité, la solution la plus efficace est de mettre à jour OpenSSL vers la version 3.0.7 pour toutes les applications concernées.

Comme précisé, dans le cadre d’un serveur, le vecteur d’attaque est l’authentification mutuelle. Heureusement, cette option n’est pas activée par défaut et la vaste majorité des serveurs ne sont donc pas impactés. Dans le cas où cette option serait activée et qu’il ne serait pas possible de mettre à jour OpenSSL, il est recommandé de désactiver temporairement la vérification des certificats clients.

Nameshield a effectué un audit en interne pour vérifier l’utilisation d’OpenSSL sur nos différentes applications, et nous pouvons attester que nous ne sommes pas impactés par ces deux vulnérabilités.

Source de l’image : storyset.com