Vigil@nce - PHP : contournement de la vérification X.509 subjectAltName
août 2013 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant peut envoyer un certificat X.509 contenant un octet
nul à un client écrit en PHP pour usurper l’identité d’un serveur.
– Produits concernés : Debian, Fedora, MBS, MES, PHP
– Gravité : 2/4
– Date création : 14/08/2013
DESCRIPTION DE LA VULNÉRABILITÉ
Un client SSL doit vérifier que le nom de machine indiqué dans le
certificat reçu du serveur corresponde au nom de machine auquel il
souhaite accéder.
La fonction openssl_x509_parse() de l’extension OpenSSL de PHP
effectue cette vérification, en appelant la bibliothèque OpenSSL.
Cependant, OpenSSL utilise des fonctions comme sprintf() qui,
conformément à la convention C, traitent le caractère ’\0’ comme
un terminateur de chaîne. La comparaison du nom dans le champ
X.509 subjectAltName ne porte alors que sur la partie précédant le
premier caractère nul.
Un attaquant peut donc envoyer un certificat X.509 contenant un
octet nul à un client écrit en PHP pour usurper l’identité d’un
serveur.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/PHP-contournement-de-la-verification-X-509-subjectAltName-13280