CVE-2020-13777: une vulnérabilité GnuTLS trouvée cachée pendant 2 ans

La vulnérabilité dans GnuTLS, appelée CVE-2020-13777, est une bibliothèque open source largement adoptée qui utilise TLS (Transport Layer Security)

Selon les rapports, la vulnérabilité se trouve dans la bibliothèque pendant environ 2 ans, ce qui rend les sessions TLS 1.3 reprises ouvertes pour les attaques. La vulnérabilité a été remarquée dans GnuTLS 3.6.4 en septembre 2018, et a été corrigée plus tard dans la nouvelle version de GnuTLS 3.6.14 le 3 juin 2020.

Explication de la vulnérabilité CVE-2020-13777

Selon certaines sources, ce bogue permettait en fait aux serveurs GnuTLS d’utiliser des tickets de session émis lors de la précédente session TLS 1.3 sécurisée, sans utiliser la fonction qui crée des clés secrètes:

gnutls_session_ticket_key_generate ()

Profitant de cette vulnérabilité, les attaquants pourraient contourner l’authentification sous TLS 1.3, récupérant ainsi les conversations précédentes sous TLS 1.2.

Selon ce que le chercheur nommé Airtower a à dire:

«Les serveurs GnuTLS peuvent utiliser des tickets émis l’un par l’autre sans accéder à la clé secrète générée par gnutls_session_ticket_key_generate (). Cela permet à un serveur MITM sans informations d’identification valides de reprendre les sessions avec un client qui a d’abord établi une connexion initiale avec un serveur avec des informations d’identification valides. Le problème s’applique à TLS 1.3, lorsque la reprise de TLS 1.2 échoue comme prévu. »

Les chercheurs en sécurité ont d’abord remarqué ce problème avec la version Ubuntu 3.6.13-2ubuntu1 et l’ont créé avec une nouvelle version de master appelée 52e78fle.

Certains chercheurs soutiennent également que GnuTLS devrait être éliminé en tant que dépendance, tandis que beaucoup d’entre eux ont également exprimé leur dédain envers la bibliothèque, selon ce que TheRegister a souligné.

Selon le dictionnaire MITRE CVE, la description de CVE-2020-13777 est décrite comme suit:

«GnuTLS 3.6.x avant le 3.6.14 utilise une cryptographie incorrecte pour crypter un ticket de session (une perte de confidentialité dans TLS 1.2 et un contournement d’authentification dans TLS 1.3). La première version affectée est 3.6.4 (2018-09-24) en raison d’une erreur dans une validation 2018-09-18. Jusqu’à la première rotation de clé, le serveur TLS utilise toujours des données erronées à la place d’une clé de chiffrement dérivée d’une application. »

Cependant, aucune atténuation identifiée contre cette vulnérabilité n’a été clarifiée par les conseillers RedHat.