PHP2Shell es una investigación técnica exhaustiva que detalla el proceso de explotación de una vulnerabilidad crítica en PHP, centrada en el uso de punteros caducados (stale pointers) y la gestión de memoria en el heap. El artículo, iniciado en octubre de 2026, busca proporcionar una explicación profunda y accesible de cómo se produce la fuga de memoria y la ejecución remota no autorizada (RCE), superando las explicaciones superficiales disponibles en la comunidad de seguridad.
El texto explica los fundamentos de la asignación de memoria en C y PHP, destacando cómo el sistema operativo reutiliza bloques de memoria liberados mediante funciones como malloc y free. La vulnerabilidad se origina cuando un puntero sigue apuntando a una dirección de memoria ya liberada, permitiendo a un atacante leer o escribir datos de objetos que ya no pertenecen al proceso original. Este mecanismo, conocido como Use-After-Free (UAF), es la base de la explotación descrita.
La investigación desglosa el ataque en cuatro etapas principales. Primero, se construye una petición HTTP que provoca un error de memoria (OOM) para liberar memoria específica. Segundo, se recupera esa memoria y se forja un objeto malicioso, como un zend_string, para sobrescribir datos críticos. Tercero, se explota una fuga de puntero de código para eludir ASLR y una fuga de puntero de heap para obtener información de memoria. Finalmente, se combina todo en un payload de 384 bytes que utiliza la función pDestructor para ejecutar comandos arbitrarios. El autor enfatiza que este análisis es una interpretación técnica personal y no una referencia oficial, invitando a la comunidad a corregir posibles errores y a contribuir con nuevos hallazgos para mejorar la comprensión de la seguridad en aplicaciones web.
