Vigil@nce : libxml2, buffer overflow via une entité
septembre 2008 par Vigil@nce
SYNTHÈSE
Un attaquant peut créer un fichier XML malformé afin de provoquer
un déni de service ou l’exécution de code lors de son analyse par
libxml2.
Gravité : 3/4
Conséquences : accès/droits utilisateur, déni de service du service
Provenance : document
Moyen d’attaque : 1 attaque
Compétence de l’attaquant : technicien (2/4)
Confiance : confirmé par l’éditeur (5/5)
Diffusion de la configuration vulnérable : élevée (3/3)
Date création : 12/09/2008
Référence : VIGILANCE-VUL-8106
PRODUITS CONCERNÉS
– Mandriva Corporate [versions confidentielles]
– Mandriva Linux [versions confidentielles]
– Red Hat Enterprise Linux [versions confidentielles]
– Unix - plateforme
DESCRIPTION
La bibliothèque libxml2 implémente des fonctionnalités pour gérer
les données au format XML.
Un fichier XML peut contenir des caractères spéciaux représentés
sous forme d’entités, comme "<".
La fonction xmlParseAttValueComplex() du fichier parser.c analyse
les entités contenues dans la valeur d’un attribut. Le champ
replaceEntities de la structure _xmlParserCtxt indique si les
entités doivent être converties ou non.
Lorsque les entités ne doivent pas être converties, et si une
entité n’est pas reconnue, elle est simplement copiée dans le
tableau de sortie. Cependant, la taille du tableau n’est pas
ajustée pour contenir cette entité.
Un attaquant peut donc employer une entité trop longue afin de
provoquer un débordement, conduisant à un déni de service ou à
l’exécution de code.
CARACTÉRISTIQUES
Références : 461015, BID-31126, CVE-2008-3529, MDVSA-2008:192, RHSA-2008:0884-01, RHSA-2008:0886-01, VIGILANCE-VUL-8106