Vigil@nce : libpng, corruption de mémoire via png_check_keyword
février 2009 par Vigil@nce
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant peut écrire un octet nul en mémoire via
png_check_keyword().
Gravité : 1/4
Conséquences : création/modification de données
Provenance : shell utilisateur
Moyen d’attaque : aucun démonstrateur, aucune attaque
Compétence de l’attaquant : expert (4/4)
Confiance : confirmé par l’éditeur (5/5)
Diffusion de la configuration vulnérable : faible (1/3)
Date création : 19/02/2009
PRODUITS CONCERNÉS
– OpenSUSE
– SUSE LINUX Enterprise Server
– Unix - plateforme
DESCRIPTION DE LA VULNÉRABILITÉ
La bibliothèque libpng est utilisée par des applications créant et
manipulant des images au format PNG (Portable Network Graphics).
Une image PNG est composée d’une suite de fragments représentés
par quatre lettres :
– IHDR : entête (header)
– IDAT : données (image data)
– tEXT : texte
– zTXt : texte compressé (texte compressé avec zlib)
– etc.
La fonction png_check_keyword() du fichier pngwutil.c vérifie le
nom de la clé des champs tEXT et zTXt. Cette fonction est appelée
lors de la création d’une image.
Si un nom de clé est trop long, png_check_keyword() écrit un octet
nul (’\0’) à une adresse incorrecte, au lieu de le mettre à la fin
de la chaîne.
Un attaquant peut donc écrire un octet nul en mémoire via
png_check_keyword(), lorsqu’il peut contrôler le nom d’une clé à
mettre dans une image PNG.
CARACTÉRISTIQUES
Références : CVE-2008-5907, SUSE-SR:2009:003, VIGILANCE-VUL-8481
http://vigilance.fr/vulnerabilite/libpng-corruption-de-memoire-via-png-check-keyword-8481