Vulnérabilités dans OpenSSL

Date de publication :

CVE-2021-23839 [Score CVSS v3 : 7.5] : OpenSSL 1.0.2 supporte SSLv2. Si un client tente de négocier SSLv2 avec un serveur qui est configuré pour supporter à la fois SSLv2 et des versions plus récentes de SSL et TLS, une vérification est faite pour une attaque de type "version rollback" lors du décodage d'une signature RSA. Les clients qui prennent en charge des versions de SSL ou TLS supérieures à SSLv2 sont censés utiliser une forme spéciale de remplissage. Un serveur qui prend en charge une version supérieure à SSLv2 est censé rejeter les tentatives de connexion d'un client où cette forme spéciale de remplissage est présente, parce que cela indique qu'une annulation de version a eu lieu (c'est-à-dire que le client et le serveur prennent en charge une version supérieure à SSLv2, et pourtant c'est cette version qui est demandée). L'implémentation de ce contrôle de remplissage a inversé la logique de sorte que la tentative de connexion est acceptée si le remplissage est présent, et rejetée s'il est absent. Cela signifie que le serveur acceptera une connexion si une attaque de type "rollback" de la version a eu lieu. En outre, le serveur rejettera par erreur une connexion si une tentative de connexion SSLv2 normale est effectuée. Un attaquant distant et non-authentifié peut exploiter cette vulnérabilité afin de se connecter de façon illégitime à un système d’information.

CVE-2021-23840 [Score CVSS v3 : 7.5] : Les retours des appels aux méthodes EVP_CipherUpdate, EVP_EncryptUpdate et EVP_DecryptUpdate peuvent dépasser la longueur de l’argument de sortie dans certains cas où la longueur d'entrée est proche de la longueur maximale autorisée pour un entier sur la plateforme. Dans de tels cas, la valeur de retour de l'appel de fonction sera 1 (indiquant le succès), mais la valeur de la longueur de sortie sera négative. Cela pourrait entraîner un mauvais comportement des applications ou un plantage. Un attaquant distant et non-authentifié peut exploiter cette faille afin de provoquer un déni de service de l’application.

CVE-2021-23841 [Score CVSS v3 : 5.9] : La fonction X509_issuer_and_serial_hash() de l'API publique d'OpenSSL tente de créer une valeur de hachage unique basée sur les données de l'émetteur et du numéro de série contenues dans un certificat X509. Cependant, elle ne gère pas correctement les erreurs qui peuvent se produire lors de l'analyse du champ de l'émetteur (ce qui pourrait se produire si le champ de l'émetteur est construit de manière malveillante). Cela peut entraîner par la suite une déréférence de pointeur NULL et un crash de l’application. La fonction X509_issuer_and_serial_hash() n'est jamais directement appelée par OpenSSL lui-même, les applications ne sont donc vulnérables que si elles utilisent directement cette fonction et qu'elles l'utilisent sur des certificats qui peuvent avoir été obtenus de sources non fiables. Un attaquant distant et non-authentifié peut exploiter cette faille afin de provoquer un déni de service de l’application vulnérable.

 

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Risques

  • Contournement d’authentification
  • Violation des politiques de sécurité.

Criticité

  • Scores CVSS v3 : 7.5 ; En cours de calcul

Existence d’un code d’exploitation

  • Aucun code d’exploitation n’est disponible publiquement à l’heure actuelle.

Composants vulnérables

CVE-2021-23839 :

  • OpenSSL 1.0.2 de la version 1.0.2s à 1.0.2x
  • Afin d'être vulnérable, un serveur 1.0.2 doit :
    • Avoir configuré le support SSLv2 à la compilation (ce qui est désactivé par défaut)
    • Avoir configuré le support SSLv2 à l'exécution (ce qui est désactivé par défaut)
    • Avoir configuré les suites de chiffrement SSLv2 (celles-ci ne sont pas dans la liste des suites de chiffrement par défaut).  Cependant, comme le protocole SSLv2 n'est pas pris en charge dans la version 1.1.1, il s'agit d'un bogue et non d'un problème de sécurité dans cette version. OpenSSL 1.0.2 n'est plus supporté et ne reçoit plus de mises à jour publiques.

CVE-2021-23840 & CVE-2021-23841 :

  • Les versions 1.1.1i et inférieures d'OpenSSL sont affectées par ce problème.
  • Les versions 1.0.2x et inférieures d'OpenSSL sont concernées par ce problème. 

CVE

Solutions ou recommandations

Mise en place de correctifs de sécurité

  • Les clients du support Premium d'OpenSSL 1.0.2 doivent effectuer une mise à jour vers la version 1.0.2y. Les autres utilisateurs doivent passer à la version 1.1.1j. 
  • OpenSSL 1.0.2 n'est plus supporté et ne reçoit plus de mises à jour publiques. 

Solution de contournement

  • Aucune solution de contournement n’est proposée à l’heure actuelle.