Les responsables d’OpenSSL ont publié un correctif pour deux failles de sécurité de haute gravité dans son logiciel qui pourraient être exploitées pour mener des attaques par déni de service (DoS) et contourner la vérification des certificats.
Suivi comme CVE-2021-3449 et CVE-2021-3450, à la fois le vulnérabilités ont été résolus dans une mise à jour (version OpenSSL 1.1.1k) publiée jeudi. Alors que CVE-2021-3449 affecte toutes les versions d’OpenSSL 1.1.1, CVE-2021-3450 affecte les versions d’OpenSSL 1.1.1h et plus récentes.
OpenSSL est une bibliothèque logicielle composée de fonctions cryptographiques qui implémentent le protocole Transport Layer Security dans le but de sécuriser les communications envoyées sur un réseau informatique.
Selon un avis publié par OpenSSL, CVE-2021-3449 concerne une vulnérabilité DoS potentielle due à un déréférencement de pointeur NULL qui peut provoquer le plantage d’un serveur OpenSSL TLS si, au cours de la renégociation, le client transmet un message « ClientHello » poignée de main entre le serveur et un utilisateur. Le problème a été introduit dans le cadre de changements datant de janvier 2018.
« Si une renégociation TLSv1.2 ClientHello omet l’extension signature_algorithms (où elle était présente dans le ClientHello initial), mais inclut une extension signature_algorithms_cert, alors une déréférence de pointeur NULL en résultera, conduisant à un plantage et une attaque par déni de service, » l’avis m’a dit.
Nokia, qui a été crédité d’avoir signalé la faille le 17 mars, a corrigé le bogue DoS avec un changement de code sur une ligne.
CVE-2021-3450, d’autre part, concerne un indicateur X509_V_FLAG_X509_STRICT qui permet des contrôles de sécurité supplémentaires des certificats présents dans une chaîne de certificats. Bien que cet indicateur ne soit pas défini par défaut, une erreur dans l’implémentation signifiait qu’OpenSSL n’a pas réussi à vérifier que «les certificats non CA ne doivent pas être en mesure d’émettre d’autres certificats», ce qui a entraîné un contournement de certificat.
En conséquence, la faille empêchait les applications de rejeter les certificats TLS qui ne sont pas signés numériquement par une autorité de certification (CA) de confiance du navigateur.
«Pour être affectée, une application doit définir explicitement l’indicateur de vérification X509_V_FLAG_X509_STRICT et soit ne pas définir un objectif pour la vérification du certificat, soit, dans le cas des applications client ou serveur TLS, remplacer l’objectif par défaut», a déclaré OpenSSL.
Benjamin Kaduk d’Akamai aurait signalé le problème aux responsables du projet le 18 mars. La vulnérabilité a été découverte par Xiang Ding et d’autres à Akamai, avec un réparer mis en place par Tomáš Mráz, ancien ingénieur logiciel principal de Red Hat et développeur OpenSSL.
Bien qu’aucun des problèmes n’affecte OpenSSL 1.0.2, il convient également de noter que la version n’est plus prise en charge depuis le 1er janvier 2020 et ne reçoit plus de mises à jour. Il est conseillé aux applications qui reposent sur une version vulnérable d’OpenSSL d’appliquer les correctifs pour atténuer le risque associé aux failles.