Vigil@nce - Python : déni de service via un certificat X.509 avec un nom contenant des jokers
avril 2016 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : https://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant contrôlant un serveur SSL peut utiliser un
certificat avec de nombreux jokers, afin de mener un déni de
service contre les clients programmés en Python.
– Produits concernés : Fedora, MBS, openSUSE, RHEL.
– Gravité : 2/4.
– Date création : 12/02/2016.
DESCRIPTION DE LA VULNÉRABILITÉ
La bibliothèque de base de Python contient une mise en œuvre de
SSL.
Le coté client de SSL doit vérifier que le nom présent dans le
certificat X.509 correspond au nom fourni par l’application. Des
serveurs d’un même domaine peuvent se partager un certificat en
utilisant un nom de type "*.domaine". Cependant, lorsque le nom
présent dans le certificat contient de nombreux jokers "*", la
bibliothèque consomme énormément de puissance de calcul. La
fonction concernée ssl.match_hostname() transforme probablement
le nom en motif d’expression régulière évaluée avec retour
arrière. Une correspondance sera alors en échec seulement après
de très nombreuses recherches de correspondance des jokers.
Un attaquant contrôlant un serveur SSL peut donc utiliser un
certificat avec de nombreux jokers, afin de mener un déni de
service contre les clients programmés en Python.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET