Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Vigil@nce : PHP, lecture mémoire via libxml2

janvier 2011 par Vigil@nce

Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/

SYNTHÈSE DE LA VULNÉRABILITÉ

Le code de PHP ne valide pas les données UTF-8 transmises à
libxml2, ce qui permet à un attaquant de lire un fragment de la
mémoire du processus PHP.

 Gravité : 1/4
 Date création : 25/01/2011

PRODUITS CONCERNÉS

 PHP

DESCRIPTION DE LA VULNÉRABILITÉ

La bibliothèque libxml2 permet de créer des documents XML. Par
exemple, la méthode xmlTextWriterPtr::xmlTextWriterWriteAttribute()
ajoute un attribut. Ses paramètres doivent être en UTF-8 valide.

La méthode XMLWriter::writeAttribute() du module XML de PHP
appelle libxml2. Cependant, elle ne valide pas les données UTF-8
avant de les transmettre à libxml2.

Les séquences UTF-8 commençant par les bits 1110xxxx sont
composées de 3 octets. La séquence "\xE0\x81" est donc invalide
car il manque le troisième octet. Cependant, libxml2 lit le
troisième octet, qui est le caractère nul (’\0’) de fin de chaîne.
La bibliothèque ne détecte alors pas la fin de chaîne et continue
à lire après elle.

Un attaquant peut donc forcer l’absorption du caractère nul par
XMLWriter::writeAttribute(), et ensuite lire le document XML
généré, qui contiendra les données en mémoire situées après la fin
de la chaîne UTF-8 malformée passée à writeAttribute().

Le code de PHP ne valide donc pas les données UTF-8 transmises à
libxml2, ce qui permet à un attaquant de lire un fragment de la
mémoire du processus PHP.

ACCÈS AU BULLETIN VIGIL@NCE COMPLET

http://vigilance.fr/vulnerabilite/PHP-lecture-memoire-via-libxml2-10297


Voir les articles précédents

    

Voir les articles suivants