PHP lanza parches de emergencia para las graves vulnerabilidades PHP2Shell

El equipo de seguridad de PHP ha publicado parches de emergencia para dos vulnerabilidades críticas de ejecución remota de código (RCE) registradas como CVE-2026-109618 y CVE-2026-109619, conocidas en conjunto como PHP2Shell. Los fallos fueron descubiertos por investigadores de Calif, OpenAI y Wiz y afectan a todas las instalaciones de PHP que atienden solicitudes web, entre ellas PHP-FPM, Apache con mod_php, php-cgi, FrankenPHP y LiteSpeed.

Según el equipo de seguridad de PHP, el riesgo es especialmente elevado en mod_php, donde se ha demostrado un exploit en el que una petición no autenticada puede desencadenar el ataque antes de que se ejecute cualquier código de la aplicación.

Ambos fallos comparten un origen común: PHP puede dejar su memoria en un estado corrupto cuando una solicitud finaliza de forma anómala. CVE-2026-109618 permite obtener ejecución remota de código con la cuenta del worker web mediante una cadena de debilidades que provoca corrupción por agotamiento de memoria, mientras que CVE-2026-109619, una vulnerabilidad de estado global obsoleto, habilita un use-after-free en el heap, la divulgación de memoria y la ejecución remota de código con los privilegios del worker web, todo ello sin autenticación.

Los administradores deben instalar cuanto antes PHP 8.5.12, 8.4.27, 8.3.36 o 8.2.35 en los servidores que ejecuten PHP 8.x, y migrar a una versión corregida si aún utilizan PHP 7 o anterior.

PHP 8.1 y versiones anteriores ya no reciben actualizaciones del proyecto PHP. Algunas distribuciones y proveedores de soporte a largo plazo ofrecen correcciones retroportadas, así que consulten con su proveedor o actualicen a una versión soportada. Dada la gravedad de estas vulnerabilidades, el equipo de seguridad de PHP ha proporcionado retroportaciones mínimas del código fuente para PHP 7.4, PHP 8.0 y PHP 8.1, con el fin de ayudar a quienes compilan desde el código fuente o no tienen acceso a un proveedor de soporte a largo plazo.

Aviso previo a la publicación

La publicación de los parches llega después de que los desarrolladores de PHP advirtieran el martes a los administradores que se prepararan para instalar las actualizaciones en cuanto estuvieran disponibles. Señalaron que se reservaban el derecho de adelantar el lanzamiento si los detalles de alguna de las vulnerabilidades se hacían públicos o si aparecían indicios de explotación activa.

La desarrolladora del núcleo de PHP Gina Peter Banyard advirtió de que ninguna mitigación de PHP2Shell bloquearía por completo los posibles ataques y que la única defensa permanente es aplicar los parches oficiales.

Antes de la publicación de los parches, el director de tecnología de Cloudflare, Dane Knecht, confirmó que la compañía, que ya había desplegado un conjunto de reglas WAF para bloquear los métodos de explotación conocidos de PHP2Shell, estaba observando ataques tempranos contra ambas vulnerabilidades. No obstante, Knecht subrayó que esas protecciones eran temporales e instó a todos los administradores a instalar las actualizaciones de seguridad de PHP en cuanto estuvieran disponibles.

El Centro Nacional de Ciberseguridad del Reino Unido (NCSC) también ha advertido a las organizaciones británicas de que actualicen de inmediato los sistemas que usan PHP o los desconecten hasta que puedan aplicar los parches.

Medidas de mitigación temporales

El equipo de seguridad de PHP publicó varias medidas de mitigación que reducen la exposición a algunas rutas de ataque para quienes no puedan parchear sus servidores de inmediato, aunque no protegen por completo frente a la explotación. Los detalles están disponibles en la entrada del blog de PHP.

  • CVE-2026-109618: establecer memory_limit=-1, preferiblemente de forma que las aplicaciones no puedan sobrescribirlo, por ejemplo con php_admin_value en el pool de FPM o en la configuración de Apache.
  • CVE-2026-109618: fijar un post_max_size bajo, de 8M para aplicaciones que no requieran subida de archivos y de 32M si las subidas son necesarias.
  • CVE-2026-109618: usar un límite de contenedor o cgroup como frontera de disponibilidad, preferiblemente con una política que solo termine el worker afectado.
  • CVE-2026-109619: establecer session.upload_progress.enabled=0 y reiniciar todos los workers.
  • CVE-2026-109619: en PHP 8.5, establecer fatal_error_backtraces=0 y reiniciar todos los workers; esto solo bloquea la ruta confirmada de backtrace fatal.
  • CVE-2026-109619: eliminar la configuración no válida u obsoleta aplicada por solicitud que emita diagnósticos antes de la inicialización; ocultar los diagnósticos con error_reporting, display_errors o @ no sirve.
  • CVE-2026-109619: corregir los errores fatales y los tiempos de espera de ejecución accesibles por atacantes, incluidos los fallos en callbacks, en el procesamiento de subidas o importaciones y en la limpieza.

Contexto

PHP (Hypertext Preprocessor) es un lenguaje de desarrollo web del lado del servidor y de código abierto que impulsa entre el 75 % y el 80 % de todos los sitios web, incluidos los que usan gestores de contenido como WordPress, Joomla y Drupal. Según estimaciones de VirusTotal, hay más de 5,1 millones de hosts PHP expuestos en línea, de los cuales unos 3,8 millones tienen al menos un puerto abierto.

article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *