El ecosistema web global vive una de sus semanas más tensas de los últimos años. El proyecto oficial de PHP —el lenguaje de programación sobre el cual corre más del 70% de los sitios web del mundo, incluyendo la totalidad de WordPress, WooCommerce, Moodle y PrestaShop— acaba de liberar parches de emergencia para corregir dos vulnerabilidades críticas bautizadas en conjunto como PHP2Shell (CVE-2026-109618 y CVE-2026-109619).

Con una severidad de 9.2 sobre 10 en la escala CVSS v4.0 (y calificada con un 10 rotundo por diversas firmas de inteligencia de amenazas), la falla ya es comparada en impacto con incidentes históricos como Log4Shell o Heartbleed. La gravedad fue tal que, en las horas previas a la liberación del parche, portales gubernamentales en Europa y plataformas como el Phabricator de Wikimedia optaron por desconectarse temporalmente de internet por precaución.

¿Qué es PHP2Shell y por qué es tan peligroso?

A diferencia de las vulnerabilidades habituales en WordPress que afectan a un plugin o tema mal programado, PHP2Shell reside en el núcleo mismo del motor de PHP y ha estado oculta en el código fuente durante más de una década (afectando desde PHP 5.4 hasta las versiones actuales de la rama 8.x).

Lo verdaderamente inédito de este hallazgo es su origen: las fallas fueron descubiertas por investigadores de seguridad de Calif, Wiz y OpenAI utilizando modelos de Inteligencia Artificial de frontera (como GPT-5.6 Sol y Gemini 4 Argon) para auditar millones de líneas de código e identificar errores lógicos que los ojos humanos habían pasado por alto durante años.

El peligro radica en tres factores letales:

  1. Ejecución Remota de Código (RCE) sin autenticación: Un atacante no necesita usuario ni contraseña. Basta con enviar solicitudes HTTP especialmente manipuladas al servidor para tomar el control o leer credenciales, claves de API y certificados directamente desde la memoria RAM.
  2. Ocurre antes de que tu código se ejecute: La falla se activa cuando el servidor procesa la petición entrante. Por lo tanto, instalar un plugin de seguridad en WordPress o tener un código impecable no te protege.
  3. Doble vector de ataque:
    • CVE-2026-109618 (Corrupción por falta de memoria – OOM): Al enviar peticiones o subidas de archivos multipart manipuladas que agotan el límite de memoria (memory_limit), PHP aborta el proceso de golpe y deja datos sin inicializar que luego son ejecutados durante la limpieza de la solicitud.
    • CVE-2026-109619 (Estado global residual / Use-After-Free): Tras un error fatal, información de una petición previa sobrevive en la memoria del worker y puede ser reutilizada por una segunda solicitud consecutiva, aprovechando funciones como el progreso de subida de sesiones (session.upload_progress).

Están en riesgo todas las configuraciones que sirven peticiones web (PHP-FPM, Apache con mod_php, php-cgi, LiteSpeed y FrankenPHP), siendo mod_php en Apache el escenario de mayor riesgo inmediato.

Panorama en Chile: ¿Hay sitios atacados en el país?

En Chile, la Agencia Nacional de Ciberseguridad (ANCI) emitió una alerta crítica dirigida especialmente a servicios esenciales, instituciones públicas y Operadores de Importancia Vital (OIV), instando a la aplicación inmediata de los parches. Asimismo, pasarelas e integradores locales como Mercado Pago Chile y proveedores de infraestructura nacional (como Netprovider y firmas del rubro) han enviado notificaciones urgentes a sus clientes y desarrolladores.

¿Existen sitios chilenos vulnerados?

Hasta el momento, no se han reportado caídas masivas ni filtraciones públicas confirmadas de portales gubernamentales o bancarios chilenos atribuibles a PHP2Shell. Sin embargo, firmas de inteligencia global como watchTowr confirmaron que a pocas horas de publicado el aviso ya se registraban escaneos masivos e intentos de explotación activa (in-the-wild) a nivel mundial mediante scripts automatizados generados con IA.

El verdadero punto ciego en Chile no son los grandes bancos ni los hostings administrados —muchos de los cuales actualizaron sus nodos automáticamente—, sino los miles de servidores VPS autogestionados, sitios corporativos antiguos e intranets institucionales que corren en versiones obsoletas de PHP (como PHP 7.4, 8.0 u 8.1) y que nadie está monitoreando activamente.

Guía de acción y consejos para Administradores y Webmasters

Si administras tus propios servidores Linux (en Ubuntu, Debian o paneles como HestiaCP, cPanel o Plesk) o tienes sitios web alojados en Chile, debes actuar en las próximas horas siguiendo este protocolo:

1. Actualiza PHP a las versiones parcheadas (Solución definitiva)

El equipo de PHP lanzó las versiones corregidas oficiales. Debes verificar en tu consola o panel de control que estés corriendo exactamente una de estas compilaciones (o superior):

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

¡Atención con versiones antiguas (EOL)! Las ramas PHP 8.1, 8.0 y 7.4 ya no reciben soporte oficial de PHP.org. Sin embargo, mantenedores de repositorios en distribuciones como Ubuntu/Debian (por ejemplo, los repositorios de Ondřej Surý) y paneles como Plesk han liberado backports de seguridad con fecha de compilación del 21 de octubre de 2026 o posterior. Ejecuta php -v por terminal SSH y verifica que la fecha de compilación (built date) sea igual o posterior al 21 de octubre.

2. Reinicia obligatoriamente los servicios y Workers

Actualizar los paquetes por consola (apt update && apt upgrade) no basta si los procesos antiguos siguen cargados en la memoria RAM. Una vez actualizado PHP, debes reiniciar Apache, Nginx y todos los demonios de PHP-FPM (systemctl restart php8.3-fpm, etc.) para limpiar la memoria y cargar los binarios seguros.

3. Mitigaciones temporales (Si no puedes actualizar hoy)

Si administras un sistema heredado que no puedes actualizar de inmediato, aplica estas directivas directamente en la configuración global de tu servidor (php.ini o configuración del pool FPM, nunca mediante .user.ini o ini_set()):

  • Desactiva el progreso de subida de sesiones: Configura session.upload_progress.enabled = 0 para bloquear la vía confirmada de la falla CVE-2026-109619.
  • En PHP 8.5: Configura fatal_error_backtraces = 0.
  • Restringe tamaños de petición: Ajusta post_max_size a un valor bajo (ej. 8M si el sitio no requiere subidas pesadas) y limita el tamaño máximo del cuerpo de la petición directamente en tu proxy inverso (Nginx con client_max_body_size) o en tu WAF (Cloudflare).
  • Ajuste de memoria de emergencia: Para mitigar el vector OOM de CVE-2026-109618, el CERT-EU sugiere fijar temporalmente memory_limit = -1 mediante php_admin_value y controlar el límite de memoria a nivel de contenedor Docker o cgroups del sistema operativo.

4. Auditoría post-parche (Threat Hunting)

Si tu servidor estuvo expuesto sin parches entre el 20 y el 22 de octubre, asume que pudo ser escaneado:

  • Revisa los logs de acceso y error de Nginx/Apache buscando picos de errores 500 o peticiones POST anómalas hacia archivos inexistentes.
  • Busca archivos .php modificados recientemente en carpetas de subida como /wp-content/uploads/.
  • Si detectas actividad sospechosa, rota todas las contraseñas de bases de datos, claves de API y certificados alojados en ese servidor, ya que una de las variantes de PHP2Shell permite volcar secretos de la memoria sin dejar archivos escritos en el disco duro.

Por internet

Agregar un comentario

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