Vulnerabilidad crítica de Ejecución Remota de Código (RCE) en servidores PHP

La firma de ciberseguridad DEVCORE ha descubierto una vulnerabilidad crítica en el lenguaje de programación PHP, ampliamente utilizado en el ecosistema web. Esta vulnerabilidad podría permitir a atacantes no autenticados tomar control total de los servidores PHP afectados.

Es necesario destacar que actualmente existe una PoC disponible para esta vulnerabilidad.

  • CVE-2024-4577 (CVSS: 9.8): Esta vulnerabilidad crítica radica en un error en la función de conversión de codificación Best-Fit en sistemas operativos Windows durante la implementación de PHP. Permite a los atacantes eludir protecciones de vulnerabilidades previas (CVE-2012-1823) mediante secuencias de caracteres específicas, resultando en la ejecución arbitraria de código en servidores PHP a través de un ataque de inyección de argumentos, lo que permite el acceso y control no autorizado.

Productos y versiones afectadas:

  • PHP para Windows: Todas las versiones anteriores a 8.3.8, 8.2.20 y 8.1.29.
  • Apache XAMPP: Todas las versiones afectadas.

También son vulnerables las versiones PHP 8.0, PHP 7.x y PHP 5.x, las cuales ya no disponen de soporte.

Solución:

  • PHP ha lanzado parches para las versiones afectadas el 6 de junio de 2024. Las versiones corregidas son 8.3.8, 8.2.20 y 8.1.29.
  • Apache XAMPP aún no ha publicado actualizaciones.

Workaround

Para sistemas que no se pueden actualizar inmediatamente y usuarios de versiones EoL, se recomienda aplicar una regla mod_rewrite para bloquear ataques, como la siguiente:

  • RewriteEngine On
  • RewriteCond %{QUERY_STRING} ^%ad [NC]
  • RewriteRule .? – [F,L]

Si usa XAMPP y no necesita la función PHP CGI, busque la directiva ‘ScriptAlias’ en el archivo de configuración de Apache (normalmente en ‘C:/xampp/apache/conf/extra/httpd-xampp.conf’) y coméntelo.

Los administradores pueden determinar si usan PHP-CGI usando la función phpinfo() y verificando el valor Server API en la salida.

Recomendaciones:

  • Actualizar PHP a las versiones 8.3.8, 8.2.20 y 8.1.29 para solucionar esta vulnerabilidad.
  • Ajustar la configuración de XAMPP comentando la directiva ScriptAlias en el archivo httpd-xampp.conf.
  • Migrar de CGI a alternativas más seguras, como FastCGI, PHP-FPM y Mod-PHP
  • Revisar y fortalecer la configuración del servidor para asegurar que no existan configuraciones predeterminadas vulnerables.

Referencias: