Vigil@nce : libpng, déni de service de png_format_buffer
juillet 2011 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant peut inviter la victime à consulter une image PNG
malformée, afin de stopper les applications liées à libpng.
– Gravité : 1/4
– Date création : 28/06/2011
PRODUITS CONCERNÉS
– Unix - plateforme
DESCRIPTION DE LA VULNÉRABILITÉ
La bibliothèque libpng permet de gérer des images au format PNG
(Portable Network Graphics).
Les fonctions png_chunk_error() et png_chunk_warning() créent les
messages d’erreur nécessaires pour indiquer qu’une image est
incorrecte. Ces fonctions utilisent la fonction interne
png_format_buffer(). Cette dernière contient le code suivant :
png_memcpy(buffer+iout, error_message, PNG_MAX_ERROR_TEXT(64)) ;
Cette fonction concatène donc toujours 64 octets dans le buffer.
Cependant, si la taille du message est uniquement de 10
caractères, 64 octets sont tout de même copiés, ce qui signifie
que le processeur accède à 54 octets situés après la fin de la
chaîne de caractères représentant le message. Si ces octets sont
situés sur une page mémoire différente, une erreur de segmentation
se produit.
Un attaquant peut donc inviter la victime à consulter une image
PNG malformée, afin de stopper les applications liées à libpng.
Cette vulnérabilité est une régression de VIGILANCE-VUL-4148
(https://vigilance.fr/arbre/1/4148).
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/libpng-deni-de-service-de-png-format-buffer-10782