vulnerabilidad critica php ejecucion codigo malicioso

¡Alerta! Vulnerabilidad crítica en PHP permite ejecutar código malicioso en Windows

Una vulnerabilidad crítica en el lenguaje de programación PHP ha encendido las alarmas en el mundo de la ciberseguridad. Investigadores de seguridad han advertido que se puede explotar esta vulnerabilidad sin mayor esfuerzo, lo que permitiría la ejecución de código malicioso en dispositivos con Windows. Si administras servidores con PHP, te recomiendo actuar antes de que termine la semana.

La urgencia detrás del descubrimiento

La vulnerabilidad, junto con el parche correspondiente, se hizo pública recientemente, lo que ha llevado a organizaciones como Shadowserver a realizar escaneos de Internet para identificar servidores susceptibles a ataques. Los expertos en seguridad están especialmente preocupados debido a varios factores: la facilidad de explotación, la disponibilidad de códigos de ataque de prueba de concepto, la gravedad de la ejecución remota de código en máquinas vulnerables y el hecho de que esta popular plataforma es vulnerable por defecto.

¿Cómo se aprovecha esta vulnerabilidad?

Un caso práctico señalado por los investigadores de WatchTowr ilustra cómo las consultas enviadas a través de un comando de línea pueden transformarse en un comando ejecutado por el motor principal de PHP. Un simple requerimiento como http://host/cgi.php?foo=bar puede convertirse en php.exe cgi.php foo=bar, y ser ejecutado inadvertidamente.

Como bien sabes, PHP, al igual que otros lenguajes, convierte ciertos tipos de entradas de usuario para evitar que sean interpretadas como comandos ejecutables, en un proceso conocido como «escapar». Por ejemplo, en HTML, los caracteres < y > se convierten en &lt; y &gt; para prevenir que sean leídos como etiquetas HTML. Sin embargo, sucede que el sistema de «mejor ajuste» de PHP no siempre escapa correctamente ciertos caracteres, lo que deja una brecha aprovechable para los atacantes.

El problema con el carácter «guion blando»

Los investigadores demostraron que el sistema de «mejor ajuste» de PHP convierte un carácter «guion blando» suave (con valor Unicode 0xAD) en un guion normal (0x2D) sin escaparlo. Esto significa que un atacante puede introducir argumentos adicionales de línea de comandos que comienzan con guiones en el proceso PHP.

La vulnerabilidad es bastante similar a un error anterior de PHP (cuando estaba en modo CGI), identificado como CVE-2012-1823. Las técnicas de explotación desarrolladas para este error anterior pueden adaptarse para funcionar con esta nueva vulnerabilidad.

Una técnica sugerida para realizar la inyección involucra la inclusión de argumentos como -d allow_url_include=1 -d auto_prepend_file=php://input, permitiendo que el input de una solicitud HTTP sea procesado por PHP.

Al probar este enfoque con un «guion blando» suave, podríamos introducir el siguiente comando:

POST /test.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{host}}
User-Agent: curl/8.3.0
Accept: */*
Content-Length: 23
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive

¡Voilá! Un PHPinfo revelador, confirmando que hemos logrado la ejecución remota de código.

A quiénes afecta este problema

El informe de Devcore destaca que XAMPP es vulnerable cuando Windows está configurado para usar locales como chino tradicional, chino simplificado o japonés. En Windows, un locale define las preferencias de usuario en cuanto a idioma y convenciones culturales. Aunque no se han probado otros locales, se aconseja realizar una evaluación exhaustiva de los activos para entender los escenarios de uso.

La vulnerabilidad CVE-2024-4577 afecta a todas las versiones de PHP que se ejecutan en dispositivos Windows, incluidas versiones anteriores a 8.3.8 para la rama 8.3, 8.2.20 para la rama 8.2 y 8.1.29 para la rama 8.1. Las ramas 8.0, 7 y 5 también son vulnerables, pero no reciben soporte actualmente, lo que significa que los administradores deben adoptar medidas de mitigación, como la aplicación de reglas de reescritura.

Acciones que deberías tomar ahora mismo

Si administras servidores PHP, te sugiero que realices de inmediato un análisis de tu infraestructura para identificar cualquier sistema vulnerable. También deberías estudiar la posibilidad de aplicar parches y considerar la implementación de reglas de reescritura. Recuerda que un simple descuido podría tener graves consecuencias.

Para obtener más detalles sobre cómo proteger tu entorno, visita nuestra sección de ciberseguridad. Mantente alerta y asegura tus sistemas antes de desconectar por el fin de semana. ¡La tranquilidad nunca ha tenido tanto valor!

Noticias similares

Deja una respuesta

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