CRÍTICO CVSS 9.2 Parches oficiales publicados el 21 oct 2026 Explotación activa reportada

¿Está su sitio PHP expuesto a php2shell? (CVE-2026-109618 & 109619)

Comprobador de vulnerabilidades gratuito en línea, matriz de versiones mínimas seguras de PHP (8.5.12, 8.4.27, 8.3.36, 8.2.35) y guías de parches.

Comprobación pasiva: envía una única solicitud GET no destructiva para inspeccionar cabeceras HTTP. Sin exploit ni cuerpo POST.

Versiones de PHP Oficialmente Afectadas y Corregidas

Fuente: Lanzamientos de seguridad de php.net y avisos de GitHub (publicados el 21 de octubre de 2026).

Rama PHP Alcance Vulnerable Primera Versión Corregida Estado Oficial y Acción Requerida
PHP 8.5 < 8.5.12 8.5.12 Soporte Activo — Actualizar a 8.5.12+
PHP 8.4 < 8.4.27 8.4.27 Soporte Activo — Actualizar a 8.4.27+
PHP 8.3 < 8.3.36 8.3.36 Soporte Activo — Actualizar a 8.3.36+
PHP 8.2 < 8.2.35 8.2.35 Solo Seguridad (Fin dic 2026) — Actualizar a 8.2.35+
PHP 8.6 < 8.6.0RC4 8.6.0RC4 RC de Desarrollo — Solo pruebas, no usar en producción
PHP 8.1, 8.0, 7.4 Todas las versiones Sin lanzamiento oficial Fin de Ciclo (EOL) — Vulnerable a menos que el proveedor aplique parche
PHP 5.4 – 7.3 Todas las versiones Sin parche disponible Vulnerable Heredado — Sin solución oficial — deshabilitar session.upload_progress
Nota importante sobre paquetes de distribuciones Linux:

Ubuntu, Debian y RHEL aplican parches de seguridad sin actualizar el número de versión (ej. Ubuntu 22.04 ofrece 8.1.2-1ubuntu2.28). Revise el changelog antes de alarmarse con nuestra guía.

Actúe Ahora: Protocolo de Remediación en 4 Pasos

Siga estos pasos en estricto orden. Ninguna otra medida proporciona protección completa contra PHP2Shell.

01

Localizar cada entorno de PHP

Audite servidores web, contenedores Docker, imágenes base y entornos de prueba. Tenga en cuenta que su versión CLI (php -v) puede diferir de la que ejecuta PHP-FPM o Apache.

Ver comandos de inventario →
02

Instalar una versión corregida

Actualice a las versiones oficiales: 8.5.12, 8.4.27, 8.3.36 o 8.2.35. Actualizar plugins CMS (WordPress, Drupal, Laravel) NO soluciona vulnerabilidades del núcleo de PHP.

Seleccionar guía de plataforma →
03

Reiniciar todos los demonios PHP

PASO CRÍTICO: Los binarios actualizados no se cargan hasta que se reinicien los procesos trabajadores. Reinicie PHP-FPM, Apache, FrankenPHP y trabajadores de colas inmediatamente.

sudo systemctl restart php*-fpm apache2
04

Verificar y revisar registros

Confirme que el servidor web activo informe la versión corregida. Audite los registros de acceso desde principios de octubre de 2026 en busca de caídas anómalas en subidas multipart.

Volver a ejecutar comprobación →

Comandos de Terminal para Auto-Comprobación

Ejecute estos comandos vía SSH en sus servidores para determinar la versión real del paquete PHP activo:

Ubuntu / Debian: Comprobar paquetes instalados y changelog de CVE
dpkg -l 'php*' 'libapache2-mod-php*' | grep ^ii
zgrep -E "CVE-2026-10961[89]" /usr/share/doc/php*-common/changelog*
RHEL / AlmaLinux / Rocky Linux: Inspeccionar changelog RPM
rpm -qa | grep -Ei "^(php|ea-php|alt-php)" | sort
rpm -q --changelog php-common | grep -E "CVE-2026-10961[89]"
Docker: Comprobar versión de PHP dentro del contenedor en ejecución
docker exec -it <container_name> php -v
docker exec -it <container_name> php -m | grep session

Preguntas Frecuentes (FAQ)

El comprobador dice que la versión está oculta. ¿Estoy a salvo? ▼

No necesariamente. Ocultar X-Powered-By solo oculta la versión públicamente, pero no mitiga la vulnerabilidad de base. Ejecute los comandos CLI directamente en su servidor.

¿Este comprobador ataca o escanea mi sitio web? ▼

No. Solo envía una petición GET no destructiva para examinar cabeceras HTTP. No envía cargas útiles de exploit, cuerpos POST ni realiza escaneo de rutas.

¿Existe una solución temporal si hoy no puedo actualizar? ▼

Sí. Deshabilitar session.upload_progress.enabled = Off en su archivo global php.ini y recargar PHP-FPM neutraliza la ruta primaria del exploit UAF. No obstante, actualizar PHP es la única solución definitiva.

¿Por qué debo reiniciar PHP-FPM o Apache tras la actualización? ▼

Las actualizaciones de paquetes solo reemplazan archivos en disco. Los procesos trabajadores activos retienen el código vulnerable en la memoria RAM hasta que se reinicien.

¿Un firewall de aplicaciones web (WAF) bloquea totalmente PHP2Shell? ▼

No. Aunque las reglas WAF pueden bloquear firmas conocidas, los atacantes pueden alterar delimitadores multipart o tamaños de fragmentos para evadir la inspección del WAF.

¿Los sitios en PHP 7.4 u 8.0 más antiguos están en riesgo? ▼

Sí. Todas las versiones desde 5.4 hasta 8.5 son estructuralmente vulnerables al UAF en RFC1867. Al estar en fin de vida (EOL), debe aplicar backports de la distribución o deshabilitar upload_progress.

¿Afecta esta vulnerabilidad a scripts CLI en línea de comandos? ▼

La ejecución pura de CLI sin procesamiento de subidas multipart POST no suele estar expuesta. Sin embargo, las interfaces SAPI accesibles vía web (PHP-FPM, Apache mod_php, FrankenPHP, Swoole) son completamente vulnerables.

¿Pueden los plugins de seguridad de WordPress solucionar esto? ▼

No. Los plugins de seguridad se ejecutan en el espacio de usuario de PHP DESPUÉS de que el motor procese las peticiones multipart. La vulnerabilidad se dispara en el código nativo en C antes de cualquier plugin.

Investigación Técnica: 20 avisos revisados, análisis de código C y guías de defensa.