Vigil@nce : PHP, lecture mémoire via shmop_read
mars 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 créer un script PHP employant la fonction
shmop_read(), afin de lire la mémoire ou de stopper l’application.
– Gravité : 2/4
– Date création : 08/03/2011
PRODUITS CONCERNÉS
– PHP
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction PHP shmop_read() lit une zone mémoire partagée :
shmop_read(shmid, positionDébut, nombreDOctetsALire) ;
Cette fonction vérifie que la zone mémoire demandée soit située à
l’intérieur de la zone mémoire de l’objet. Cependant, si
positionDébut vaut 1 et si nombreDOctetsALire vaut 2147483647
(2^31-1), leur somme vaut 2147483648 qui est un nombre négatif sur
32 bits. La vérification de la zone mémoire n’est alors plus
efficace.
Si le système possède 2Go de mémoire, une zone mémoire de 2Go est
retournée à l’utilisateur. Si le système ne possède pas cet espace
libre, l’interpréteur PHP tente de lire une adresse invalide, ce
qui le stoppe.
Un attaquant peut donc créer un script PHP employant la fonction
shmop_read(), afin de lire la mémoire ou de stopper l’application.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/PHP-lecture-memoire-via-shmop-read-10431