Vulnérabilités dans OpenSSL

Date de publication :

CVE-2021-3711 [Score CVSS v3 : 9.8 ]
Un vulnérabilité dans l'implémentation du code de décryptage des données SM2. Afin de décrypter ce type de données chiffrées, une application doit appeler la fonction API EVP_PKEY_decrypt(). En général, une application appelle cette fonction deux fois. La première fois, la fonction renvoie, entre autres, la taille du tampon nécessaire pour contenir le texte en clair décrypté. L'application peut alors allouer un tampon de taille suffisante et appeler EVP_PKEY_decrypt() à nouveau.

Cependant, le calcul de la taille du tampon nécessaire pour contenir le texte en clair renvoyé par le premier appel à EVP_PKEY_decrypt() peut être inférieur à la taille réelle requise par le second appel. Cela peut entraîner un dépassement de tampon lorsque EVP_PKEY_decrypt() est appelé une deuxième fois par l'application avec un tampon trop petit.

Un attaquant capable de présenter un contenu SM2 à décrypter à une application peut être en mesure de provoquer un débordement de tas sur un maximum de 62 octets ce qui pourrait modifier le comportement de l'application ou provoquer son plantage. L'emplacement du tampon dépend de l'application, mais il est généralement alloué au tas mémoire.
 

CVE-2021-3712 [Score CVSS v3 : 7.4 ]
Les chaînes de type ASN.1 sont représentées en interne dans OpenSSL par la structure ASN1_STRING qui contient un tampon avec les données de la chaîne et un champ contenant la longueur du tampon. Ceci contraste avec les chaînes C qui sont normalement représentées comme un tampon pour les données de la chaîne qui se termine par un octet NUL (0).

Le problème apparaît lorsque les applications construisent directement des structures ASN1_STRING valides (sans utiliser la fonction de construction d’OpenSSL) qui ne terminent pas le tableau d'octets par NUL en définissant directement les champs "data" et "length" dans le tableau ASN1_STRING.

Un attaquant peut faire en sorte qu'une application construise directement une ASN1_STRING et la traite ensuite par l'intermédiaire d’une fonction OpenSSL pouvant traiter des structures ASN1_STRING. L’attauqant pourrait alors provoquer un déni de service ou encore avori accès en lecture à du contenu de la mémoire (comme des clés privées ou du texte en clair sensible).

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Risques

  • Déni de service 
  • Atteinte à la confidentialité des données

Criticité

  • Scores CVSS v3 : 9.8 max

Existence d’un code d’exploitation

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

Composants vulnérables

  • OpenSSL versions 1.1.xa antérieures à 1.1.1l
  • OpenSSL versions 1.0.2y et antérieures 

CVE

Solutions ou recommandations

Mise en place de correctifs de sécurité

  • Mettre à jour OpenSSL conformément aux instructions de l’éditeur.

Solution de contournement

  • Aucune solution de contournement n’est disponible publiquement à l’heure actuelle.