Una vulnerabilidad en PHP permite ejecutar código al trabajar en modo CGI.

Se ha descubierto una vulnerabilidad en PHP (CVE-2024-4577) que permite la ejecución de código en el servidor o la visualización del código fuente del script PHP en caso de utilizar PHP en modo CGI en la plataforma Windows (las configuraciones con mod_php, php-fpm y FastCGI no son vulnerables). El problema se ha solucionado en las versiones PHP 8.3.8, 8.2.20 y 8.1.29.

La vulnerabilidad es un caso particular del problema corregido en 2012, CVE-2012-1823, para el cual la protección agregada fue insuficiente para bloquear el ataque en la plataforma Windows. El método de ataque consiste en la posibilidad de inyectar un argumento de línea de comandos al iniciar el intérprete de PHP mediante la manipulación de los parámetros de la solicitud al script PHP.

En la antigua vulnerabilidad CVE-2012-1823, era suficiente con especificar opciones de línea de comandos en lugar de parámetros de consulta, por ejemplo, «http://localhost/index.php?-s» para mostrar el código fuente del script. La nueva vulnerabilidad se basa en que la plataforma Windows realiza la conversión automática de caracteres, lo que permite eludir la protección previamente añadida al especificar caracteres presentes en algunas codificaciones que se reemplazan por el carácter «-» (por ejemplo, http://localhost/index.php?s).

La vulnerabilidad se ha confirmado en configuraciones con locales para chino tradicional (cp950), chino simplificado (cp936) y japonés (cp932), pero no se excluye su aparición con otros locales. El problema se manifiesta en la configuración predeterminada del paquete XAMPP (Apache + MariaDB + PHP + Perl), así como en cualquier configuración de Apache donde php-cgi esté establecido como el manejador de scripts CGI mediante la configuración
‘Action cgi-script "/cgi-bin/php-cgi.exe"‘ o ‘Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"‘, o al ubicar directamente el intérprete php en "/cgi-bin" y en cualquier otro directorio donde se permita la ejecución de scripts CGI a través de la directiva ScriptAlias.

Además, en las actualizaciones de PHP 8.3.8, 8.2.20 y 8.1.29 se han solucionado otras tres vulnerabilidades:

  • CVE-2024-5458 — posible elusión del filtro
    FILTER_VALIDATE_URL, utilizado al invocar la función filter_var.
  • CVE-2024-5585 — un vector alternativo de ataque a la vulnerabilidad CVE-2024-1874, que permite eludir la protección previamente agregada e inyectar comandos al invocar archivos bat y cmd a través de la función proc_open en la plataforma Windows (vulnerabilidad BatBadBut).
  • Vulnerabilidad de la función openssl_private_decrypt ante el ataque Marvin.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster