PHP2Shell: qué es la vulnerabilidad crítica de PHP y qué hacer hoy en su empresa

Código PHP en la pantalla de un computador, el lenguaje afectado por la vulnerabilidad PHP2Shell

PHP2Shell es el nombre con que se conocen dos vulnerabilidades críticas del propio lenguaje PHP, y su empresa puede estar expuesta aunque nadie haya tocado su código. Esta guía explica qué son, qué versiones están corregidas, qué se sabe hoy de su explotación y qué hacer esta semana, con las fuentes oficiales al lado de cada dato.

En resumen
  • Qué es: CVE-2026-109618 y CVE-2026-109619 permiten ejecución remota de código sin autenticación en servidores que atienden peticiones web con PHP. Ambas tienen una puntuación CVSS v4.0 de 9,2 según Datadog Security Labs.
  • Versiones corregidas (21 de octubre de 2026): PHP 8.5.12, 8.4.27, 8.3.36 y 8.2.35, según The PHP Foundation.
  • PHP 8.1 y anteriores: no tienen versión oficial corregida. Les queda un parche del proveedor, aplicar el backport de código fuente o migrar.
  • Explotación: hay intentos reportados y escaneo masivo. Ninguna fuente consultada confirma compromisos exitosos.
  • Qué hacer hoy: saber qué versión corre su servidor web, quién la actualiza y, si no puede hoy, aplicar mitigaciones temporales o sacar de línea lo que no pueda parchear.

¿Qué es PHP2Shell y por qué importa aunque su código sea seguro?

Es un conjunto de dos fallos en el intérprete de PHP que un atacante remoto puede aprovechar, sin credenciales, para ejecutar código en el servidor. Importa porque el fallo no está en su aplicación sino en la capa sobre la que corre.

  • CVE-2026-109618: un error de memoria. Cuando una asignación falla, por ejemplo al agotarse memory_limit durante la petición, PHP deja datos inválidos que su rutina de limpieza procesa como si fueran válidos.
  • CVE-2026-109619: un uso de memoria ya liberada. Un proceso de PHP reutiliza estado obsoleto de una petición anterior.

CISA resume el alcance así: permiten ejecución remota de código sin autenticación y afectan a todas las instalaciones de PHP que atienden peticiones web. Según Datadog Security Labs, cubre Apache con mod_php, PHP-FPM, php-cgi, FrankenPHP y LiteSpeed. En Apache con mod_php y ajustes por defecto, la ejecución remota quedó demostrada sin autenticación.

Para una empresa mediana, eso significa que WordPress, WooCommerce, Moodle, una intranet o un ERP escrito en PHP comparten el mismo riesgo. Da igual que el plugin esté al día o que la aplicación esté bien programada: lo que hay que mirar es la versión del intérprete que la ejecuta.

Racks de servidores en un centro de datos, la capa donde corre PHP y donde se aplica la corrección de PHP2Shell
PHP2Shell se corrige en el servidor, no en cada aplicación: por eso la pregunta útil es qué versión corre y quién la actualiza. Foto: panumas nikhomkhai, Pexels.
Dato útil: CISA advierte que PHP suele venir incrustado en otro software y que no siempre es fácil de ver. Un panel de gestión, un portal de proveedores o una tienda contratada a terceros pueden usarlo sin que usted lo sepa.

¿Qué versiones de PHP están corregidas y cuáles no?

Están corregidas las ramas 8.5, 8.4, 8.3 y 8.2 a partir de las versiones que muestra la tabla, publicadas el 21 de octubre de 2026. Quedan sin versión oficial PHP 8.1 y las anteriores.

Rama de PHPAfectada si es anterior a…Qué hacer
8.58.5.12Actualizar a 8.5.12 o superior
8.48.4.27Actualizar a 8.4.27 o superior
8.38.3.36Actualizar a 8.3.36 o superior
8.28.2.35Actualizar a 8.2.35 o superior
8.1 y anterioresSin versión oficial corregidaPedir al proveedor un parche con backport o migrar a una rama con soporte

Fuente: The PHP Foundation para las versiones corregidas y Datadog Security Labs para el alcance. PHP 8.1 y las ramas anteriores están fuera del soporte regular del proyecto, y según Qualys la mayoría nunca recibirá un parche de proveedor. Datadog Security Labs añade que el proyecto publicó backports de código fuente para 7.4, 8.0 y 8.1, que no son versiones oficiales.

Ojo con el número de versión: Datadog Security Labs advierte que los proveedores pueden aplicar la corrección sin cambiar el número. Un servidor que muestra «8.3.30» puede estar parcheado si su proveedor de sistema operativo o de hosting hizo un backport. Lo contrario también ocurre: si nadie confirma el parche, no lo dé por hecho.

¿Está siendo explotada PHP2Shell?

Hay intentos reportados y escaneo masivo, pero ninguna fuente consultada confirma compromisos exitosos. Las fuentes no coinciden del todo en el matiz, y conviene verlas por fecha.

FechaQué se reportóFuente
17 de octubreAWS reportó intentos de explotación, cuatro días antes de la divulgación públicaDatadog Security Labs
21 de octubreEl equipo de seguridad de PHP dijo que no había identificado exploits funcionales al publicar; después circularon pruebas de concepto tras una filtración. La versión se adelantó un díaThe PHP Foundation
21 de octubreCISA indicó que no había observado explotación al momento de publicar y pidió parchear de inmediatoCISA
21 de octubreDatadog cita reportes de explotación activa y escaneo masivo sin objetivo concretoDatadog Security Labs
22 de octubreQualys menciona que Cloudflare reportó tráfico de ataque dirigido a estas vulnerabilidades y recuerda que la explotabilidad varía según la configuración y la aplicaciónQualys

La lectura prudente es que el riesgo es real y creciente, no que su servidor esté comprometido. Esta página se actualizará si cambia el estado de explotación.

¿Qué hacer hoy? Checklist en cinco pasos

Hoy toca averiguar dónde corre PHP, qué versión usa de verdad y quién es responsable de actualizarla. Estos cinco pasos siguen el orden recomendado por CISA y Datadog Security Labs.

  1. Inventarie dónde corre PHP. Sitio web, tienda en línea, plataforma de cursos, intranet, ERP y cualquier software de terceros que lo incluya. Anote para cada uno quién lo aloja y quién lo mantiene.
  2. Confirme la versión del servidor web, no solo la de la consola. La versión que muestra el comando php -v es la de la línea de comandos y puede diferir de la que atiende al público. Verifíquela en el panel de su hosting o con quien administra el servidor. Para el procedimiento, vea la guía sobre cómo saber qué versión de PHP usa su sitio y actualizarla.
  3. Actualice o exija al proveedor una versión parcheada. Si usa una rama 8.2 a 8.5, suba a la versión corregida. Si el proveedor aplica backports, pídale confirmación por escrito de que incluyen CVE-2026-109618 y CVE-2026-109619.
  4. Si no puede hoy, aplique mitigaciones temporales. Se detallan en la siguiente sección. No sustituyen el parche.
  5. Revise los registros en busca de las señales que describe Datadog. Están en la tabla de abajo.
Dónde mirarQué buscar
Registro de peticionesUn envío de formulario con un único nombre de campo de unos 3,5 MB
Registro de errores de PHP«Allowed memory size exhausted» con «Unknown on line 0». Por sí solo no prueba un ataque
Registro de errores de ApacheFallos de segmentación con el código AH00052
Procesos del servidorUn proceso web, por ejemplo apache2, que lanza una consola de comandos. Es la evidencia más directa de ejecución

Fuente: Datadog Security Labs. Si encuentra alguna, no la borre ni reinicie el servidor antes de conservar una copia de los registros.

Cables de red conectados a un panel de conexiones, imagen de la infraestructura que debe inventariarse al responder a PHP2Shell
El inventario incluye lo que no se ve: servidores alojados con terceros y software que trae su propio PHP. Foto: Brett Sayles, Pexels.

¿No sabe qué versión corre su servidor web ni quién la mantiene? Un diagnóstico de 30 minutos, sin costo ni compromiso, le deja un inventario claro de lo que tiene que actualizar.

Pedir el diagnóstico

¿Qué pasa si no puedo actualizar hoy?

Puede reducir el riesgo con mitigaciones temporales, pero Datadog Security Labs es claro: el parche es la única corrección completa. Si lo que no puede parchear debe seguir en línea, conviene filtrar y aislar.

  • Frente a CVE-2026-109618: fijar memory_limit=-1 a nivel de administrador, siempre junto con límites de tamaño de petición en el servidor frontal y límites de memoria del contenedor. No es una solución de largo plazo.
  • Frente a CVE-2026-109619: desactivar session.upload_progress.enabled (valor 0) y, en PHP 8.5, fatal_error_backtraces=0. Deben estar en la configuración que se carga antes de procesar la petición, y luego hay que reiniciar todos los procesos de PHP.
  • Filtro delante de la aplicación: un cortafuegos de aplicaciones web (WAF) o un proxy inverso puede bloquear peticiones antes de que lleguen al analizador de PHP. CISA lo considera una protección provisional parcial.
  • Restringir el acceso público: si una aplicación interna no necesita estar abierta a internet, ciérrela o aíslela de la red.
Si sigue en PHP 8.1 o anterior: CISA recomienda sacar de línea los sistemas basados en PHP que no puedan parchearse hasta que se actualicen. Para una tienda o un portal de clientes es una decisión de negocio, y se toma mejor con un plan de migración a mano. Ahí ayuda la guía sobre PHP 8.1 sin soporte: riesgos y plan de migración.
Servidores de torre en un centro de datos, ejemplo de equipos que deben aislarse o actualizarse si ejecutan PHP sin parche
Lo que no se puede parchear hoy se aísla, se filtra o se retira de línea hasta que se pueda actualizar. Foto: panumas nikhomkhai, Pexels.

Las mitigaciones pueden afectar el funcionamiento: quitar el límite de memoria sin topes externos abre otro riesgo. Por eso conviene aplicarlas con alguien que conozca su servidor. Si busca una visión más amplia, el artículo sobre estrategias de ciberseguridad para proteger su negocio ordena las demás capas de defensa.

¿Cuándo conviene pedir ayuda?

Conviene cuando no tiene una persona interna que sepa responder las preguntas del checklist en pocas horas, o cuando lo que corre sobre PHP es crítico para vender u operar. Los casos habituales son estos:

  • Una tienda en línea (WooCommerce, PrestaShop o similar): cada hora de caída cuesta ventas, y una actualización mal hecha puede romper plugins de pago o de envío.
  • Una plataforma de cursos como Moodle: tiene muchas extensiones y cada una puede depender de una versión concreta de PHP.
  • Un ERP o una intranet a medida en PHP: el proveedor original quizá ya no la mantiene y nadie sabe qué versión usa.
  • Un hosting compartido o un servidor sin responsable claro: hay que averiguar quién aplica los parches y cuándo.

Mtechnology atiende esta capa con soporte TI, con el mantenimiento web de sitios y tiendas, y con la operación de servidores en hosting y cloud. El primer paso es siempre el mismo: un diagnóstico de 30 minutos, sin costo, que termina con un inventario de versiones y una lista de prioridades. Ningún servicio garantiza que un sistema quede libre de vulnerabilidades, pero sí reduce la ventana de exposición.

Preguntas frecuentes sobre PHP2Shell

¿Mi sitio WordPress está afectado por PHP2Shell?

Lo está si se ejecuta sobre una versión de PHP anterior a 8.5.12, 8.4.27, 8.3.36 u 8.2.35 sin un parche equivalente del proveedor. WordPress, sus plugins y su tema no son el origen del fallo, que está en PHP. Confirme la versión con su hosting y pida que lo actualicen.

¿Cómo sé si mi proveedor de hosting ya aplicó el parche?

Pregúnteselo por escrito y pida que indique si actualizó a una versión corregida o aplicó un backport de CVE-2026-109618 y CVE-2026-109619. El número de versión por sí solo puede engañar, porque un backport no siempre lo cambia. Si no responde con claridad, trate el servidor como no parcheado.

¿Puedo seguir usando PHP 8.1 o una versión anterior?

No hay versión oficial corregida para esas ramas. CISA recomienda sacar de línea los sistemas que no puedan actualizarse, y Qualys indica que la mayoría de las ramas antiguas no recibirá parche de proveedor. Lo razonable es migrar a una rama con soporte y, mientras tanto, filtrar y aislar.

¿Cambiar memory_limit basta para protegerme?

No. Datadog Security Labs lo describe como mitigación temporal para uno de los dos fallos, que debe ir acompañada de límites de petición y de memoria del contenedor, y no es una solución de largo plazo. El otro fallo exige además desactivar la barra de progreso de subida de archivos de las sesiones. Solo el parche corrige ambos.

La decisión de hoy es saber qué versión corre y quién la actualiza

PHP2Shell no exige reescribir su software, sino saber qué versión de PHP sostiene su operación y quién tiene la responsabilidad de actualizarla. Con ese inventario hecho, el resto es ejecutar: parchear, mitigar mientras tanto o sacar de línea lo que no se pueda proteger.

Cuéntenos qué corre sobre PHP en su empresa. En 30 minutos, sin costo, revisamos versiones y proveedores y le dejamos una lista de prioridades.

Agendar un diagnóstico
Facebook
WhatsApp
Twitter
LinkedIn
Pinterest
AUTOR

Camilo Bermudez

Somos luz en este mundo, dejando una huella al ayudar a empresas y emprendedores a superar sus retos y alcanzar sus sueños, construyendo un legado duradero