**Nuevas vulnerabilidades en PHP: Un análisis profundo de CVE-2026-115560 y su contexto**
Recientemente, PHP ha alertado sobre una nueva vulnerabilidad de ejecución remota de código, identificada como CVE-2026-115560. Este anuncio se produce apenas dos días después de que se publicaran parches de emergencia para las críticas vulnerabilidades PHP2Shell, lo que subraya la necesidad urgente de que desarrolladores y administradores de sistemas presten atención a la seguridad de sus aplicaciones.
La importancia de esta vulnerabilidad radica en su potencial para afectar a sistemas que, aunque en teoría son poco comunes, pueden ser explotados por atacantes si las condiciones son favorables. Esto es particularmente preocupante en un entorno donde las aplicaciones PHP son ampliamente utilizadas para gestionar sitios web y servicios en línea.
La vulnerabilidad en cuestión afecta a una configuración específica de PHP que, según la propia documentación del proyecto, es poco probable que se implemente en la práctica. Para que un sistema sea vulnerable, debe cumplir con varios requisitos: primero, debe configurar el parámetro `session.serialize_handler` como `php_binary` o `php_serialize`; segundo, debe cambiar este parámetro a `php` en tiempo de ejecución utilizando `ini_set()`, y hacerlo antes de que se ejecute `session_start()`. Además, la opción de progreso de carga de sesiones debe permanecer habilitada. Este conjunto de condiciones inusuales significa que muchas aplicaciones no se verán afectadas, pero la advertencia debe ser tomada en serio por aquellas que puedan tener configuraciones similares.
En un aviso publicado el 23 de octubre, el equipo de PHP recomendó desactivar la opción de progreso de carga de sesiones hasta que se publique una solución en una versión regular. La vulnerabilidad identificada es independiente de las recientemente corregidas en las actualizaciones del 21 de octubre para las versiones de PHP 8.2.35, 8.3.36, 8.4.27 y 8.5.12, lo que señala la necesidad de una atención continua en la ciberseguridad de este lenguaje de programación.
El aviso de PHP aclara que “el problema solo puede ocurrir bajo una combinación inusual de configuración y código de aplicación. Una aplicación debe establecer `session.serialize_handler` a `php_binary` o `php_serialize` en su configuración y luego cambiarlo a `php` en tiempo de ejecución con `ini_set()` antes de llamar a `session_start()`. El progreso de carga de sesiones también debe seguir habilitado.” Esto implica que las aplicaciones que no cambian el controlador de serialización en tiempo de ejecución no están expuestas a esta vía de ataque, incluso si la opción de carga de sesiones está habilitada.
Como medida temporal, PHP sugiere una solución sencilla: establecer `session.upload_progress.enabled=0` hasta el próximo lanzamiento rutinario de correcciones. Esta es la misma mitigación que ya se había recomendado en el aviso del 21 de octubre para la vulnerabilidad CVE-2026-109619. Los administradores que hayan aplicado esta configuración y la hayan mantenido no necesitan tomar más acciones en relación con este problema.
El progreso de carga de sesiones, que está habilitado por defecto, permite a las aplicaciones rastrear el avance de las cargas de archivos. Deshabilitarlo reduce la exposición a esta vulnerabilidad específica, aunque no soluciona el problema de raíz.
Por otro lado, PHP ha decidido abordar la vulnerabilidad CVE-2026-115560 a través de su ciclo regular de lanzamientos, dado que la configuración vulnerable es poco común. Se espera que se publique un aviso completo con la próxima versión. Hasta la fecha, PHP no ha identificado las versiones afectadas, no ha confirmado la fecha de llegada del arreglo, ni ha asignado un puntaje de severidad, y tampoco ha aclarado si la falla comparte una causa raíz con CVE-2026-109619. Afortunadamente, no se han reportado ataques dirigidos a esta nueva vulnerabilidad.
Es importante recordar que el 21 de octubre, PHP lanzó parches de emergencia para dos vulnerabilidades críticas, identificadas como CVE-2026-109618 y CVE-2026-109619, ambas con un puntaje CVSS de 9.2. Estas vulnerabilidades afectan a todas las versiones de PHP que manejan solicitudes web y permiten la ejecución remota de código no autenticado a través de solicitudes HTTP manipuladas. La gravedad de estas vulnerabilidades fue evidenciada por los investigadores de Cloudflare, quienes observaron decenas de miles de intentos de explotación en los primeros 45 minutos tras la divulgación pública, cientos de miles en dos horas y millones para el 22 de octubre.
Como conclusión, la comunidad que utiliza PHP debe mantenerse alerta ante estas vulnerabilidades, aplicar las recomendaciones de mitigación y estar preparada para la próxima corrección. La seguridad en el desarrollo web es un aspecto crítico que no debe ser descuidado, y cada nueva vulnerabilidad es un recordatorio de la importancia de implementar prácticas de seguridad robustas y actualizadas.
Sígueme en Twitter:@securityaffairs y en Facebook y Mastodon.
Pierluigi Paganini
(SecurityAffairs – hacking, PHP)