Guía de agentes de IA
Corregir PHP2Shell con un agente de código de IA
Un agente de código de IA puede hacer la parte tediosa: averiguar qué PHP sirve realmente sus sitios, comprobar los backports de la distribución, actualizar paquetes, imágenes o el PHP del panel, reiniciar workers y revisar registros. Con estos prompts el agente propone y usted aprueba.
Última actualización
Qué hacen hacer los prompts al agente
- Detectar el PHP que realmente sirve tráfico (CLI, PHP-FPM, mod_php, cada pool y vhost).
- Compararlo con 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12, contando backports.
- Proponer el cambio y esperar su aprobación.
- Aplicarlo, reiniciar PHP-FPM y workers, reconstruir contenedores.
- Verificar la versión en uso y revisar los indicadores de JPCERT/CC: PHPSESSID anómalo, peticiones multipart seguidas de OOM o HTTP 500, reinicios inesperados de PHP.
- Informar con una tabla de antes/después.
Usar un agente con seguridad
- Lea cada comando antes de aprobarlo; mantenga el agente en un modo que pregunte antes de ejecutar.
- Pruebe primero en staging o en una copia; haga copia de seguridad o snapshot antes de tocar producción.
- No dé sudo/root sin supervisión en producción; apruebe los comandos privilegiados uno a uno.
- Nunca pegue contraseñas, claves de API, tokens ni el contenido de .env en un prompt; no hacen falta.
- No pida código de explotación ni «payloads de prueba»; la verificación se hace con versiones, changelogs y registros.
- Un agente puede equivocarse: confirme usted la versión en el PHP-FPM o mod_php en uso.
Prompts para copiar y pegar
Los prompts están en inglés para que cualquier agente los siga de forma fiable; la última línea pide el informe en español. Los datos proceden de las páginas de este sitio.
You are helping me patch the PHP2Shell vulnerability on this server.
Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".
Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).
Steps:
0. Identify the OS and package manager (cat /etc/os-release; on Windows, how PHP was installed: windows.php.net zip, IIS, XAMPP, Chocolatey, Scoop).
1. Detect the PHP that actually serves traffic, not just the CLI: compare "php -v" with the PHP-FPM binaries (php-fpm -v, php-fpm8.x -v), Apache mod_php (apachectl -M | grep php, phpinfo via a temporary local-only page that you delete afterwards), web-server config (which socket/handler each vhost uses) and running processes (ps aux | grep -i php). List every version found and which site/vhost uses it.
2. Compare each runtime against the fixed versions. If it is a distro package, check the package version against the distro's security advisory/tracker for both CVEs (backports count as fixed).
3. Propose the minimal change and WAIT for my approval: e.g. apt update && apt install --only-upgrade the php packages (Debian/Ubuntu, including ondrej/php PPA), dnf/yum update php* (RHEL/Alma/Rocky/Amazon Linux, including Remi), apk upgrade php8x* (Alpine), or replacing the PHP folder with the patched windows.php.net build (keep php.ini). Say which repositories provide the fix and the expected version.
After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.
Write your report in Spanish.You are helping me patch the PHP2Shell vulnerability in my containers.
Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".
Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).
Steps:
1. Find every Dockerfile, compose file, Helm chart and CI config in this repository that uses PHP (FROM php:..., bitnami/php-fpm, alpine + php8x packages, serversideup/php, custom base images). List each image and tag.
2. For running containers (docker ps / kubectl get pods), run "php -v" and "php-fpm -v" inside each one to get the real runtime version. Pinned digests or old tags may still be vulnerable even if the Dockerfile looks fine.
3. Compare against the fixed versions (8.2.35 / 8.3.36 / 8.4.27 / 8.5.12; for distro-package images check the distro advisory for backports).
4. Propose the change and WAIT for my approval: bump tags to a patched release, update pinned digests, add --pull to builds so the base image is refreshed, and note images that are on PHP 8.1 or earlier (no upstream fix).
After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.
Write your report in Spanish.You are helping me patch the PHP2Shell vulnerability on a server managed by a hosting control panel.
Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".
Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).
- Use the panel's own update mechanism for its PHP builds; do not install a second PHP from another repository on top of it unless I approve.
Steps:
0. Detect which panel is installed (cPanel/WHM with EasyApache 4 ea-php, Plesk with plesk-php, aaPanel/BT Panel 宝塔 under /www/server/php, DirectAdmin CustomBuild, CyberPanel/LiteSpeed lsphp, HestiaCP) and its version.
1. Detect the PHP that actually serves traffic, not just the CLI: compare "php -v" with the PHP-FPM binaries (php-fpm -v, php-fpm8.x -v), Apache mod_php (apachectl -M | grep php, phpinfo via a temporary local-only page that you delete afterwards), web-server config (which socket/handler each vhost uses) and running processes (ps aux | grep -i php). List every version found and which site/vhost uses it.
2. Compare each runtime against the fixed versions. If it is a distro package, check the package version against the distro's security advisory/tracker for both CVEs (backports count as fixed).
Panels usually install several PHP versions side by side (e.g. /opt/cpanel/ea-php*/, /opt/plesk/php/*/, /www/server/php/*/, /usr/local/lsws/lsphp*/). Check every one and which domains use it.
3. Look up the panel vendor's own PHP2Shell notice/changelog and tell me which panel PHP builds include the fix. Propose the update (e.g. WHM/EasyApache update, Plesk updater, 宝塔 software store / reinstall of the PHP version, DirectAdmin CustomBuild "./build update && ./build php", CyberPanel lsphp package upgrade) and WAIT for my approval. Flag versions the vendor has not patched yet and sites that must be moved to a patched version.
After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.
Write your report in Spanish.You are helping me deal with PHP2Shell on an application that runs PHP 8.1 or older (no upstream fix exists for these branches).
Context: PHP2Shell is CVE-2026-109618 and CVE-2026-109619, two critical unauthenticated remote-code-execution bugs in the PHP runtime (advisory published 21 October 2026). Fixed upstream releases: PHP 8.2.35, 8.3.36, 8.4.27, 8.5.12 (or later on the same branch). PHP 8.1 and earlier get no upstream fix. Linux distributions may ship backported fixes under an older version string, so check the distro's security tracker / package changelog for CVE-2026-109618 and CVE-2026-109619, not only "php -v".
Rules for you (the agent):
- Do NOT write, download, run or search for exploit code or proof-of-concept payloads. This is defensive patching only.
- Never ask me for passwords, API keys or tokens, and do not print secrets you come across (.env, wp-config.php, config files). Redact them.
- Show every command before running it. Run read-only commands first. Ask for my explicit approval before any command that changes the system, uses sudo, restarts services or rebuilds images.
- Prefer a staging copy first. Before changing anything, confirm a backup or snapshot exists (or tell me how to make one).
Steps:
1. Detect the PHP that actually serves traffic, not just the CLI: compare "php -v" with the PHP-FPM binaries (php-fpm -v, php-fpm8.x -v), Apache mod_php (apachectl -M | grep php, phpinfo via a temporary local-only page that you delete afterwards), web-server config (which socket/handler each vhost uses) and running processes (ps aux | grep -i php). List every version found and which site/vhost uses it.
2. Compare each runtime against the fixed versions. If it is a distro package, check the package version against the distro's security advisory/tracker for both CVEs (backports count as fixed).
3. Check whether my OS vendor or an extended-support provider ships a backported fix for this old branch (e.g. distro LTS/ELS security trackers). If yes, propose installing it.
4. Otherwise produce an upgrade plan to a fixed branch (8.2.35+ / 8.3.36+ / 8.4.27+ / 8.5.12+): scan the code and composer.json for incompatibilities (deprecated functions, removed extensions, framework/CMS minimum versions), suggest tools such as PHPCompatibility for PHP_CodeSniffer or Rector, estimate effort, and propose doing it on a staging copy first.
5. Propose interim risk reduction while the upgrade happens and say clearly that it is incomplete: restrict or remove internet exposure (VPN/IP allow-list, maintenance page), put a WAF in front, and apply the interim php.ini settings from the PHP advisory only as a stopgap. WAIT for my approval before changing anything.
After I approve and you apply the change:
- Restart every PHP-FPM pool / Apache / worker process (queue workers, Octane/RoadRunner/Swoole, supervisor jobs) so no old binary stays in memory. Rebuild and redeploy containers instead of patching them in place.
- Verify: re-run the version checks against the live runtime (FPM and CLI), confirm the package changelog lists the CVEs, and check the sites still respond.
- Check the compromise indicators listed by JPCERT/CC (JPCERT-AT-2026-0033) in recent web-server and PHP logs: unusually long or malformed PHPSESSID values; suspicious multipart/upload requests followed by memory exhaustion (OOM) errors or HTTP 500; unexpected PHP process crashes or restarts. Also look for recently modified .php files in web roots. Report what you find; do not delete evidence.
- Report back: a table of runtime → old version → new version → fixed (yes/no/backport), the commands you ran, anything you could not fix, and recommended next steps.
Write your report in Spanish.Agentes de código de IA habituales
Sin orden de preferencia. Este sitio no está afiliado a ninguno.
| OpenAI Codex CLI | Ejecute codex en el proyecto o en el servidor y pegue el prompt; mantenga un modo de aprobación que pregunte antes de ejecutar comandos. |
|---|---|
| Claude Code | Ejecute claude en una terminal y pegue el prompt; por defecto pide permiso antes de ejecutar comandos. |
| Cursor (Agent) | Abra el repositorio o una sesión Remote-SSH, pegue en el chat de Agent y revise cada comando. |
| Cursor Cloud Agents | Para los prompts de Docker/repositorio: trabaja en una rama y usted revisa el diff; no accede a sus servidores. |
| Grok Build (xAI CLI) | Agente de código en terminal de xAI; inícielo en el proyecto o servidor. Sin shell, pegue en el chat de Grok (grok.com) y ejecute usted los comandos. |
| GitHub Copilot coding agent | Asigne a Copilot un issue con el prompt de Docker/repositorio; abre un pull request para revisión. |
| Gemini CLI | Ejecute gemini en una terminal, pegue el prompt y confirme cada comando. |
| Windsurf (Cascade) | Pegue en Cascade dentro del editor; windsurf.com redirige actualmente a Devin Desktop. |
| Cline | Extensión de VS Code; pegue en el panel de Cline y apruebe cada comando. |
| Aider | Para los prompts de Docker/repositorio: ejecute aider en el repositorio y revise sus commits. |
Preguntas frecuentes
¿Puede un agente de IA corregir PHP2Shell por mí?
En casos rutinarios sí: actualizar paquetes de la distribución, imágenes Docker base o el PHP de un panel. Mantenga el modo de aprobación, pruebe en staging y verifique que en producción corre 8.2.35, 8.3.36, 8.4.27, 8.5.12 o un backport.
¿Es seguro dar sudo a un agente en producción?
No sin supervisión. Déjele hacer comprobaciones de solo lectura y apruebe cada comando privilegiado tras una copia de seguridad.
¿Y si uso PHP 8.1 o anterior?
No hay corrección oficial. Use el prompt de PHP antiguo para obtener un plan de actualización y medidas temporales, como retirar la exposición a Internet; los ajustes provisionales de php.ini son incompletos.