NOTA / IA EN EL MUNDO REAL

El software que nadie actualiza

PHP corrigió dos fallas críticas que permiten tomar un servidor sin credenciales. El parche llegó rápido; el problema son los servidores que corren versiones que ya nadie mantiene.

Dr. Chesini3 min de lecturaVer en X ↗

El 20 de octubre, el equipo de seguridad de PHP, el lenguaje sobre el que funciona buena parte de la web, avisó que al día siguiente publicaría un parche para dos vulnerabilidades críticas, ambas con una puntuación de 9,2 sobre 10. Los detalles técnicos se filtraron antes de tiempo. El 21, junto con las versiones 8.5.12, 8.4.27, 8.3.36 y 8.2.35, PHP confirmó el problema: dos fallas, CVE-2026-109618 y CVE-2026-109619, que pueden permitir que alguien sin ninguna credencial ejecute código en el servidor. Las bautizaron php2shell.

La primera aparece cuando PHP se queda sin memoria a mitad de preparar una petición: abandona la tarea de golpe y, al limpiar, trata como válidos datos que nunca terminó de escribir. La segunda es más inquietante: un proceso que atiende pedidos puede conservar restos de una petición anterior, cuya memoria ya fue liberada, y usarlos en la siguiente antes de reiniciarse. En la configuración que PHP considera más riesgosa, Apache con mod_php, el ataque ocurre antes de que corra una sola línea de la aplicación. Ningún inicio de sesión lo frena.

El parche resuelve el problema para quien puede instalarlo. PHP 8.1 y las versiones anteriores ya no reciben actualizaciones del proyecto: para 7.4, 8.0 y 8.1 hubo correcciones mínimas en código fuente, y de 7.3 hacia atrás no hay arreglo oficial. Un relevamiento de Flare sobre 2,2 millones de servicios que muestran su versión de PHP encontró que el 72,7 por ciento declaraba una rama sin soporte. No todos son vulnerables, porque algunas distribuciones parchean sin cambiar el número de versión, pero el orden de magnitud es claro. Según Datadog, Amazon registró intentos de explotación desde el 17 de octubre, cuatro días antes del parche, y la agencia de ciberseguridad de Estados Unidos recomendó desconectar los sistemas con PHP 8.1 o anterior que no puedan actualizarse.

En ese hueco aparece la herramienta que motivó esta nota. Hosted Power, una empresa de hosting administrado con unos 640 servidores y 14 versiones de PHP conviviendo, armó la mañana del 21, antes de la publicación oficial, una extensión llamada hp_uploadprogress_guard, y la liberó con licencia MIT. Su versión actual, del 23 de octubre, reproduce pieza por pieza la corrección oficial sobre motores sin parchear, de PHP 5.4 a 8.5, y se hace a un lado cuando el motor ya trae el arreglo. También apaga una función casi en desuso, el progreso de subida de archivos guardado en la sesión, que estaba en el centro de uno de los caminos de ataque.

Conviene no confundirla con la solución. Es una herramienta de terceros, no una corrección de PHP. Sus autores sostienen que protege de verdad y publican sus pruebas, pero igual recomiendan instalar las versiones oficiales. PHP es explícito: actualizar es la única mitigación completa. El 23 de octubre, además, avisó de una tercera falla, CVE-2026-115560, poco probable en la práctica. Un escudo de emergencia compra tiempo. No compra la actualización.

Lo que me interesa es la forma del problema. Un mecanismo pensado para proteger, el límite de memoria, se convierte en la palanca del ataque. Un proceso que debía olvidar la petición anterior la recuerda. Y debajo, una enorme cantidad de servidores que siguen funcionando porque nadie se anima a tocarlos. En la ficción, la tecnología deja de obedecer de un día para otro. En la realidad, a veces alcanza con que nadie la actualice.

— Dr. Chesini

Fuentes

Todas las notas