PHP2Shell (CVE-2026-109618 y CVE-2026-109619) y el aviso posterior CVE-2026-115560 obligan a revisar todos los servidores PHP. Este es el checklist que uso para WordPress, Moodle y Laravel, de lo más rápido a lo más completo.

1. Inventario: dónde corre PHP

  • Servidores propios (VPS, Lightsail, EC2), hosting compartido, contenedores e imágenes base.
  • Entornos de staging y demos: suelen ser los más olvidados y los más expuestos.
  • Herramientas internas: paneles, phpMyAdmin, scripts cron.

2. Versión real en ejecución

La versión de la línea de comandos no siempre coincide con la de la web.

  • CLI: php -v
  • FPM: php-fpm -v o systemctl status php*-fpm
  • Web: una página temporal con phpversion() (bórrala después) o la herramienta de estado de WordPress / Moodle.

Versiones seguras: 8.5.12, 8.4.27, 8.3.36 y 8.2.35 o superiores.

3. Actualizar según el entorno

  • Ubuntu/Debian: apt update & & apt install --only-upgrade 'php8.*' y reinicia FPM o Apache.
  • Docker: actualiza la etiqueta de la imagen base, reconstruye y vuelve a desplegar. Un docker restart no basta.
  • Hosting compartido (Hostinger, cPanel, Plesk): comprueba en el panel qué versión exacta sirve tu dominio; si el proveedor aún no ha actualizado, abre un ticket.
  • Laravel Forge, Elastic Beanstalk y similares: ya han publicado plataformas actualizadas; aplícalas.

4. Endurecer mientras tanto

  • session. upload_progress. enabled = 0 en php. ini y en cada pool FPM. Cubre CVE-2026-115560 y reduce superficie, aunque no sustituye al parche.
  • Revisa memory_limit y post_max_size: límites razonables, no ilimitados.
  • Activa reglas del WAF para PHP2Shell si usas Cloudflare, ModSecurity o un WAF gestionado.

5. Comprobar que no te han comprometido

  • Busca ficheros PHP nuevos o modificados recientemente en directorios de subida y caché.
  • Revisa los logs en busca de picos de peticiones POST multipart y errores de memoria desde el 17 de octubre.
  • En WordPress, compara el núcleo con wp core verify-checksums.
  • Si encuentras algo raro: aísla, rota credenciales (base de datos, SMTP, claves API) y restaura desde una copia limpia.

6. Reiniciar y verificar

Tras actualizar, reinicia todos los procesos PHP y vuelve a comprobar la versión desde la web. Es el paso que más se olvida.

Si gestionas varios campus Moodle o WordPress y quieres una segunda opinión, escríbeme.

Fuentes