Nueva Vulnerabilidad Crítica En PHP Expone A Los Servidores De Windows A Ejecución Remota De Código
La vulnerabilidad, identificada como CVE-2024-4577, afecta a todas las versiones de PHP en Windows, incluyendo instalaciones predeterminadas de XAMPP, y requiere actualización inmediata.
Descubrimiento y naturaleza de la vulnerabilidad
Una vulnerabilidad crítica en PHP, identificada como CVE-2024-4577, permite la ejecución remota de código (RCE) en servidores Windows.
Descubierta por el investigador de seguridad Orange Tsai de Devcore, este error aprovecha la conversión de caracteres de Unicode a ASCII, específicamente en la función ‘Best-Fit’ de Windows cuando PHP se utiliza en modo CGI. Utilizando un guión corto o hyphen (0xAD) en lugar de un guión normal (0x2D) en una petición POST, los atacantes pueden evadir el proceso de escape y ejecutar comandos arbitrarios en el servidor.
La organización Shadowserver, en una publicación en X, dijo que detectó intentos de explotación contra sus servidores honeypot dentro de las 24 horas posteriores a la divulgación pública.
Impacto
La vulnerabilidad CVE-2024-4577 afecta a todas las versiones de PHP desde la 5.x hasta la 8.x. Si estás usando PHP 8.0, PHP 7.x (EoL) o PHP 5.x (EoL), necesitas actualizar a una versión más nueva o utilizar las mitigaciones descritas a continuación. Aquellos que usan versiones soportadas de PHP deben actualizar a las versiones que incorporan los parches: PHP 8.3.8, PHP 8.2.20 y PHP 8.1.29.
Incluso si PHP no está configurado en modo CGI, puede ser explotada si los ejecutables php.exe o php-cgi.exe están en directorios accesibles por el servidor web. La configuración predeterminada de XAMPP para Windows es vulnerable, especialmente bajo configuraciones regionales en chino tradicional, chino simplificado y japonés.
Detalles de la explotación
El error permite a los atacantes eludir protecciones anteriores (CVE-2012-1823) utilizando secuencias específicas de caracteres. El procesamiento de unicode en PHP aplica un mapeo ‘Best Fit’ que interpreta un guion suave (0xAD) como un guion real (0x2D), lo cual permite a los atacantes introducir argumentos adicionales en la línea de comandos de PHP. Este comportamiento es similar a la vulnerabilidad CVE-2012-1823 y permite la inyección de comandos como -d allow_url_include=1 -d auto_prepend_file=php://input
, lo que facilita la ejecución remota de código (RCE) a través de una solicitud HTTP manipulada.
Orange Tsai, el investigador de Devcore que descubrió esta vulnerabilidad, mostró cómo una solicitud especialmente diseñada puede explotar este defecto para lograr RCE. Utilizando un guion suave en lugar de un guion normal en una petición POST, los atacantes pueden evadir el proceso de escape y ejecutar comandos arbitrarios en el servidor.
Medidas de mitigación y actualizaciones
Se ha lanzado un parche para las versiones soportadas de PHP: 8.3.8, 8.2.20 y 8.1.29. Para sistemas que no pueden actualizarse de inmediato, se recomienda implementar reglas de mod_rewrite para bloquear ataques:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]
Para los usuarios de XAMPP que no necesitan CGI, se sugiere comentar la directiva ‘ScriptAlias’ en el archivo de configuración de Apache.
Recomendaciones adicionales
Los administradores deben considerar migrar a alternativas más seguras como FastCGI, PHP-FPM o Mod-PHP. Además, es crucial revisar las configuraciones regionales de los sistemas y realizar una evaluación exhaustiva para detectar posibles vulnerabilidades.
Conclusión
La vulnerabilidad CVE-2024-4577 es altamente crítica debido a su facilidad de explotación y el impacto potencial en servidores PHP en Windows. La rápida implementación de parches y mitigaciones es esencial para proteger los sistemas contra ataques inminentes.
Más información:
- https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-ucoderef/d1980631-6401-428e-a49d-d71394be7da8
- https://www.kb.cert.org/vuls/id/520827
- https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/
- CVE 2012-1823:
https://www.kb.cert.org/vuls/id/520827
https://pentesterlab.com/exercises/cve-2012-1823/course
https://nvd.nist.gov/vuln/detail/cve-2012-1823 - https://www.php.net/ChangeLog-8.php
- https://x.com/Shadowserver/status/1799053497490698548
- https://blog.orange.tw/2024/06/cve-2024-4577-yet-another-php-rce.html
- https://arstechnica.com/security/2024/06/php-vulnerability-allows-attackers-to-run-malicious-code-on-windows-servers/
- https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/
- https://thehackernews.com/2024/06/new-php-vulnerability-exposes-windows.html
- https://www.bleepingcomputer.com/news/security/php-fixes-critical-rce-flaw-impacting-all-versions-for-windows/
Via: unaaldia.hispasec.com