2,6 millones de hosts todavía corren PHP 7.4 sin soporte
En pocas palabras: Según ZoomEye, al 28 de octubre de 2026 unos 2.650.830 servidores todavía muestran el header X-Powered-By: PHP/7.4, una rama sin soporte oficial, más del triple de los 796.916 que corren PHP 8.2, la versión parcheada contra la vulnerabilidad PHP2Shell.
PHP 7.4 sin soporte significa que esa rama del lenguaje ya no recibe correcciones oficiales de seguridad desde que alcanzó su fin de vida. Cuando aparece una vulnerabilidad crítica como PHP2Shell, los servidores que todavía corren 7.4 quedan expuestos de forma permanente, sin la posibilidad de aplicar un binario parcheado del proyecto PHP.
En este artículo:
- En 30 segundos
- ¿Qué es PHP2Shell y por qué dejó en evidencia a los servidores con PHP 7.4 sin soporte?
- ¿Cómo se midieron los 2.650.830 servidores que todavía muestran PHP 7.4?
- ¿Qué significa (y qué no) que PHP 7.4 triplique a PHP 8.2 en los headers?
- ¿Qué pueden hacer los hosts que no pueden actualizar desde PHP 7.4 sin soporte?
- ¿Cómo saber qué versión de PHP corre realmente tu sitio o servidor?
- Errores comunes al evaluar el riesgo de PHP 7.4 sin soporte
- Preguntas Frecuentes
- Conclusión
- Fuentes
En 30 segundos
- 2.650.830 servidores todavía muestran el header PHP/7.4 según consultas de ZoomEye del 28 de octubre de 2026.
- PHP2Shell (CVE-2026-109618 y CVE-2026-109619) se divulgó el 20 de octubre de 2026 y afecta versiones 5.4 a 8.5.
- Solo PHP 8.2, 8.3, 8.4 y 8.5 tuvieron binarios parcheados oficiales; 7.4, 8.0 y 8.1 recibieron parche de código fuente pero sin binario.
- El dato de 2.650.830 es un piso: el header X-Powered-By es opcional y muchos servidores lo ocultan.
- cPanel y CloudLinux lanzaron backports para parte del hosting compartido, pero no cubren VMs con builds personalizados.
¿Qué es PHP2Shell y por qué dejó en evidencia a los servidores con PHP 7.4 sin soporte?
PHP2Shell es un par de vulnerabilidades de ejecución remota de código (CVE-2026-109618 y CVE-2026-109619) descubiertas por el investigador Ryan Austin de la firma Calif, con asistencia del modelo GPT-5.6 Sol de OpenAI, y de forma independiente por el equipo de Wiz, según detalla la entrada de Wikipedia sobre el caso. El fallo afecta versiones de PHP desde la 5.4 hasta la 8.5 y recibió un puntaje CVSS 4.0 de 9.2.
Acá está el cambio de pregunta que importa: antes del 20 de octubre de 2026, lo que se medía era cuántos servidores corrían PHP en general. Después de la divulgación de PHP2Shell, la pregunta útil pasó a ser cuántos corren una versión que nunca va a recibir arreglo. Son dos cosas completamente distintas.
El PHP Foundation liberó binarios parcheados para 8.2.35, 8.3.36, 8.4.27 y 8.5.12. Para 7.4, 8.0 y 8.1 publicó el parche a nivel de código fuente, pero no binarios oficiales, porque esas ramas ya están en fin de vida. Un host que corre 7.4 no está “atrasado en parches”: está en una rama donde el concepto de estar al día ya no existe. Complementá con elegir un proveedor de cloud hosting confiable.
¿Cómo se midieron los 2.650.830 servidores que todavía muestran PHP 7.4?
El análisis de dev.to publicado el 28 de octubre de 2026 se basa en consultas directas contra el buscador ZoomEye, que indexa servicios expuestos a internet. La consulta app="PHP" devuelve 111.072.293 coincidencias en total, y si se filtra por puerto 443 el número baja a 22.706.573.
Ahí no termina. La consulta más específica es http.header="X-Powered-By: PHP", que arroja 46.709.646 servidores que efectivamente declaran su versión de runtime en la respuesta. Dentro de ese subconjunto, el desglose por versión es el dato que importa:
- PHP/7.4: 2.650.830 servidores, rama sin soporte oficial.
- PHP/8.1: 530.860 servidores, también fin de vida al momento de PHP2Shell.
- PHP/8.2: 796.916 servidores, la rama más antigua que sí recibió binario parcheado.
¿Y cómo se explica que una rama muerta aparezca más que una viva y parcheada? Ahí es donde entra el matiz técnico que separa el dato crudo de lo que realmente significa.
¿Qué significa (y qué no) que PHP 7.4 triplique a PHP 8.2 en los headers?
El header X-Powered-By es opcional, y las guías de hardening vienen recomendando sacarlo desde hace una década. Eso convierte cada número de este estudio en un piso, nunca en un total: la población que oculta su versión es invisible para este método de medición. Más contexto en resolver problemas comunes de hosting y dominio.
Esto sesga la muestra en una dirección específica. Los servidores que todavía emiten el header son, en promedio, los menos hardenizados. Lo cual hace que la proporción de 7.4 contra 8.2 sea una señal conservadora: entre los servidores que revelan algo, la rama vieja domina igual.
Ojo con otra confusión frecuente: cantidad de sitios no es lo mismo que cantidad de organizaciones. Un proveedor de hosting compartido puede exponer cientos de miles de dominios sobre un único kernel y un único build de runtime. Por eso app="PHP" con 111 millones y X-Powered-By con 46 millones describen cosas distintas: el primero es casi un proxy de “existe un servicio web acá”, el segundo es el subconjunto que además revela su identidad de runtime.
Ejemplo hipotético (ilustrativo, no un caso real): pensemos en una empresa que administra 40 sitios propios. Si corre un escaneo de headers sobre su propio rango de direcciones y encuentra 36 respuestas con X-Powered-By: PHP/8.2 y 4 sin ningún header visible, la lectura ingenua sería “estamos bien, casi todo está actualizado”. Pero esos 4 sin header son justamente el punto ciego que señala el método: pueden estar ocultando la versión por hardening correcto, o pueden ser justo los servidores viejos que nadie se acordó de inventariar. La única forma de saberlo es consultar la versión real desde el propio panel de administración o con el proveedor de hosting, no asumirla a partir de lo que el servidor decide mostrar.
¿Qué pueden hacer los hosts que no pueden actualizar desde PHP 7.4 sin soporte?
Las opciones reales para un host en fin de vida son las mismas de siempre, y nadie las encuentra divertidas: sacarlo del internet público, ponerlo detrás de un proxy que termine e inspeccione el tráfico, o retirarlo. No hay una cuarta opción mágica. Relacionado: comparar hosting en la nube contra servidores locales.
Existen backports de vendors que cubren parte del problema. cPanel y CloudLinux lanzaron parches para sus paquetes de PHP, lo que resuelve una porción importante del hosting compartido. El tema es que esos backports no cubren un build personalizado corriendo en una VM que alguien levantó en 2019 y nunca más tocó.
El ángulo de detección vale la pena mencionarlo porque es barato de implementar. Según el análisis publicado por CrowdStrike y reportado por FreeBuf el 22 de octubre de 2026, la explotación de PHP2Shell no deja rastro a nivel de aplicación: el worker sobrevive, el servidor devuelve HTTP 200, y el único artefacto es un error fatal de límite de memoria en el log del servidor web. Un entorno que no alerta sobre esa línea específica no tiene visibilidad sobre este tipo de ataque.
Criterios para priorizar qué servidor atender primero
Con decenas de hosts en un inventario, no todos pesan lo mismo. Tres preguntas, en este orden, ayudan a ordenar la lista:
- ¿Está expuesto a internet público? Un servidor interno, detrás de VPN y sin acceso desde afuera, tiene urgencia distinta a uno que responde en el puerto 443 abierto al mundo.
- ¿Existe backport para esa plataforma? Si corre sobre cPanel o CloudLinux, revisar primero si el parche de vendor ya está disponible: resuelve el riesgo sin migrar nada.
- ¿Es un build propio sin vendor detrás? Ahí no hay backport posible. La decisión se reduce a las tres opciones sin atajos: aislar, poner detrás de un proxy que inspeccione, o retirar el servicio.
¿Cómo saber qué versión de PHP corre realmente tu sitio o servidor?
Para quien administra infraestructura propia, la consulta útil no es global sino local: pedir los headers del propio espacio de direcciones y contar cuántas versiones distintas de runtime se están sirviendo. La mayoría de las organizaciones descubre más versiones de las que esperaba, porque el parque de servidores se acumuló a lo largo de años, entre adquisiciones, proyectos paralelos, apliances de proveedores y herramientas internas que nadie recuerda que existen.
El número que debería preocupar no es 2.650.830. Es la cantidad de versiones en tu propio parque que nadie tiene responsabilidad de actualizar. Ese dato no lo da ZoomEye, lo tenés que sacar vos mismo. Ya lo cubrimos antes en planificar la migración de PHP en WordPress.
Si no tenés forma de auditar esto en minutos, conviene chequearlo directamente con el proveedor de hosting. En donweb.com las versiones de PHP soportadas se mantienen actualizadas como parte del servicio, lo cual saca de encima justamente este tipo de deuda técnica silenciosa.
| Versión PHP | Estado de soporte | Servidores detectados (ZoomEye, 28/10/2026) | Parche PHP2Shell |
|---|---|---|---|
| PHP 7.4 | Fin de vida | 2.650.830 | Solo código fuente, sin binario oficial |
| PHP 8.1 | Fin de vida | 530.860 | Solo código fuente, sin binario oficial |
| PHP 8.2 | Soportada | 796.916 | Binario 8.2.35 oficial |

Errores comunes al evaluar el riesgo de PHP 7.4 sin soporte
- Confundir “sin header visible” con “sin riesgo”: sacar el X-Powered-By mejora el hardening, pero no cambia en nada la versión real que corre el servidor ni lo protege de PHP2Shell.
- Asumir que el panel de hosting ya actualizó todo: los backports de cPanel y CloudLinux cubren parte del ecosistema, no builds personalizados en VMs propias.
- Mirar el log de aplicación buscando el ataque: según CrowdStrike, la explotación no deja rastro ahí. El indicio aparece como error fatal de memoria en el log del servidor web, no en el de la app.
- Pensar que 2.650.830 es el número total de servidores expuestos: es un piso, porque muchos servidores ocultan el header y quedan fuera de esta medición.
Preguntas Frecuentes
¿Qué es la vulnerabilidad PHP2Shell?
PHP2Shell es el nombre que le puso Wiz a un par de vulnerabilidades de ejecución remota de código (CVE-2026-109618 y CVE-2026-109619) en PHP, con puntaje CVSS 4.0 de 9.2, divulgadas públicamente el 20 de octubre de 2026 y que afectan versiones de PHP desde la 5.4 hasta la 8.5.
¿Cómo sé si mi hosting todavía usa PHP 7.4?
Pedí el header de respuesta HTTP de tu sitio y fijate si aparece X-Powered-By: PHP/7.4; si tu proveedor lo oculta por hardening, consultá directamente con soporte técnico qué versión de runtime tenés asignada.
¿Por qué PHP 7.4 ya no recibe parches de seguridad?
PHP 7.4 está en fin de vida y, desde entonces, el proyecto PHP no libera binarios oficiales para esa rama. Para PHP2Shell publicaron el parche a nivel de código fuente, pero sin un binario instalable, a diferencia de lo que hicieron con 8.2, 8.3, 8.4 y 8.5.
¿Qué puedo hacer si no puedo actualizar un servidor con PHP 7.4?
Las tres opciones realistas son sacarlo del internet público, ponerlo detrás de un proxy que inspeccione el tráfico, o retirarlo directamente. Si tu plataforma corre sobre cPanel o CloudLinux, revisá si ya tenés disponible el backport que esos proveedores publicaron.
¿Qué diferencia hay entre PHP 7.4, 8.1 y 8.2 en materia de soporte?
PHP 7.4 y 8.1 están en fin de vida y solo recibieron el parche de PHP2Shell a nivel de código fuente, sin binario oficial. PHP 8.2 es una rama soportada y sí tuvo binario parcheado (8.2.35) publicado por el proyecto PHP.
Conclusión
El dato duro es simple: 2.650.830 servidores siguen anunciando PHP 7.4 sin soporte casi una semana después de que PHP2Shell se hiciera público, y eso es solo lo que se ve desde afuera. Lo que no se ve, por definición, es más grande.
La decisión que tiene sentido tomar con esta información no es entrar en pánico por el número global, sino auditar tu propio parque de servidores y contar cuántas versiones de runtime corrés sin que nadie sea responsable de actualizarlas. Eso sí lo podés medir hoy, y es el único número que realmente importa para tu caso.
Fuentes
- Wikipedia – PHP2Shell, CVE-2026-109618 y CVE-2026-109619, cronología oficial del fallo
- dev.to – Two and a Half Million Hosts Still Advertise PHP 7.4, análisis de consultas ZoomEye
- ZoomEye – índice de búsqueda usado para las consultas de versión de PHP
- FreeBuf – reporte sobre explotación de PHP2Shell y hallazgos de CrowdStrike






