¿Qué es el php2shell-checker de OpenAI?
php2shell-checker es una herramienta de código abierto que OpenAI publicó el 21 de octubre de 2026, con licencia Apache 2.0, coincidiendo con la divulgación coordinada de PHP2Shell (CVE-2026-109618 y CVE-2026-109619). Es un único script corto de Node.js con dos modos:
- Modo URL: envía una petición HEAD a una web y busca una versión de PHP en las cabeceras
X-Powered-ByyServer. Solo recurre a GET si se rechaza el HEAD, no sigue redirecciones y no lee la página. - Modo local: ejecuta
php -ven la máquina y lee la versión.
Después compara la versión con una tabla integrada de la última versión vulnerable de cada rama, de la 5.4 a la 8.5. No envía tráfico de ataque: las propias instrucciones de OpenAI piden expresamente no ejecutar sondas de explotación.
¿Cómo ejecuto el comprobador de OpenAI?
Necesitas Node.js y una copia del repositorio de GitHub. Desde la carpeta del repositorio:
- En tu servidor, para comprobar el PHP de línea de comandos:
node phpcheck.js --local - Contra tu propia web:
node phpcheck.js "https://your-site.example" - Para obtener una salida legible por máquina, añade
--json.
Usa el modo URL solo con webs que sean tuyas o que gestiones. El PHP de línea de comandos que comprueba --local puede ser distinto del que sirve tu web, así que revisa también lo que indica la propia web, por ejemplo en WordPress en Herramientas → Salud del sitio → Información → Servidor.
¿Qué significan OK, VULNERABLE y UNKNOWN?
| Resultado | Código de salida | Qué quiere decir la herramienta | Qué hacer |
|---|---|---|---|
OK | 0 | La versión es superior a la última versión vulnerable de su rama | Confirma que es la versión que usa tu web y que se reinició PHP |
VULNERABLE | 1 | La versión es igual o inferior a la última versión vulnerable | Actualiza PHP, salvo que tu proveedor haya aplicado la corrección con backport (ver abajo) |
UNKNOWN | 3 | No se encontró la versión, la rama no está en la lista o es una versión preliminar | Revisa la versión en tu panel de control o en el servidor |
UNKNOWN no significa que tu web esté a salvo. La mayoría de los servidores bien configurados ocultan la versión de PHP en sus cabeceras, así que el modo URL devuelve UNKNOWN con frecuencia.
¿En qué puede equivocarse el comprobador de OpenAI?
Solo compara números de versión, y OpenAI lo advierte: un OK no verifica de forma independiente que se haya aplicado una corrección de seguridad. En la práctica importan tres casos:
- Backports de las distribuciones: Ubuntu, Debian, Red Hat y otras corrigen paquetes de PHP con números más antiguos. Un
8.3.6-0ubuntu0.24.04.13parcheado sigue saliendo como VULNERABLE. Consulta actualizar PHP en Ubuntu y Debian. - Números de compilación de paneles y proveedores: en las ramas antiguas, cualquier número por encima del corte sale como OK, incluso números que PHP nunca publicó. 宝塔 (BaoTa) y aaPanel distribuyen compilaciones parcheadas como 7.4.34 y 8.1.35, pero 8.0.27 es a la vez una compilación de 宝塔 y una versión antigua sin parchear.
- Cabeceras: un proxy o una CDN pueden ocultar o reescribir
X-Powered-By, y un mismo servidor puede alojar muchas webs con versiones de PHP distintas.
¿Cómo lo combino con el comprobador PHP2Shell?
Pega la salida de la herramienta directamente en el campo de versión del comprobador PHP2Shell. Acepta la salida de --json, una línea como OK: PHP 8.3.36, la salida de php -v o una cabecera X-Powered-By: PHP/8.3.36, y extrae la versión. Después indica de dónde viene tu PHP en «Instalado desde», por ejemplo un paquete del sistema, 宝塔 / aaPanel u otro panel de control. Así el comprobador tiene en cuenta los backports y las compilaciones de los paneles que una simple comparación de versiones pasa por alto. La comprobación de la versión se hace en tu navegador y lo que pegas no se envía a ningún sitio.
Las versiones corregidas son:
| Rama | Primera versión corregida |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 y anteriores | Sin versión nueva; parches oficiales del código fuente para 7.4, 8.0 y 8.1 |
Si el resultado indica que estás afectado, sigue la guía del parche de PHP2Shell para tu caso. Después de actualizar, busca señales de una intrusión anterior con la lista de comprobación de intrusiones.
¿Puede php2shell.help hacer esta comprobación sobre mi URL?
Sí. El campo de URL del comprobador PHP2Shell lee las cabeceras de tu web con la misma lógica y después evalúa la versión con las reglas de este sitio. Ejecutar la herramienta por tu cuenta tiene sentido en el servidor, donde --local lee php -v.
El comprobador de OpenAI dice OK. ¿Mi web está a salvo de PHP2Shell?
No necesariamente. OK solo significa que la versión anunciada es superior a la última versión vulnerable de su rama; la herramienta no verifica la corrección en sí, y las cabeceras se pueden modificar. Confirma la versión que usa realmente tu web y que se reiniciaron todos los procesos de PHP.
Comprueba si tu PHP está afectado por PHP2Shell
Introduce la versión que indica tu web. La comparamos con la primera versión corregida de su rama y te decimos qué hacer a continuación.
Comprobador PHP2Shell →Fuentes
Los datos principales de esta página (versiones corregidas, detalles de los CVE, paquetes de los distribuidores y avisos de organismos oficiales) proceden de fuentes oficiales. Las investigaciones, noticias y publicaciones de la comunidad se identifican como tales.
- php2shell-checker: check a website or local PHP binary for php2shellInvestigación OpenAI (GitHub)
- Security advisory: Critical remote code execution vulnerabilities, update nowOficial The PHP Group
- RCE via OOM corruptionOficial The PHP Group
- RCE via stale global stateOficial The PHP Group
- Site Health screenOficial WordPress.org