PHP 8.5.5 : UAF 21 ans dans unserialize() exploité en RCE local et distant
đ Contexte PubliĂ© le 2 mai 2026 sur le blog de Calif (blog.calif.io), cet article technique dĂ©taille la dĂ©couverte et lâexploitation dâune vulnĂ©rabilitĂ© use-after-free (UAF) dans la fonction unserialize() de PHP, prĂ©sente depuis PHP 5.1 (2005) et toujours exploitable dans PHP 8.5.5. La dĂ©couverte sâinscrit dans le cadre du projet MAD Bugs (Month of AI-Discovered Bugs), combinant modĂšles dâIA (Claude) et expertise humaine. đ La vulnĂ©rabilitĂ© Le bug rĂ©side dans zend_user_unserialize() (fichier Zend/zend_interfaces.c), le point de dispatch pour Serializable::unserialize(). Contrairement Ă tous les autres points de dispatch utilisateur (__wakeup, __unserialize, __destruct), cette fonction omet dâincrĂ©menter BG(serialize_lock), ce qui permet Ă un appel rĂ©cursif Ă unserialize() de partager le var_hash externe. ...