Cabecera blog ciberseguridad

CVE-2024-4577: Vulnerabilidad crítica en PHP

La CVE-2024-4577 afecta a PHP, el lenguaje de programación más empleado del mundo

La CVE-2024-4577 puede ser explotada en todas las versiones de PHP para Windows y derivar en la ejecución de código malicioso

Recientemente se ha publicado la CVE-2024-4577, una vulnerabilidad crítica en PHP que podría derivar en una inyección de comandos remota. La vulnerabilidad puede ser explotada en todas las versiones de PHP para Windows, especialmente en las configuraciones con idioma chino tradicional, chino simplificado y japonés, incluso en instalaciones predeterminadas que usen XAMPP. Actualmente existen diferentes PoCs con exploits públicos que evidencian la vulnerabilidad.

La vulnerabilidad tiene una puntuación CVSS v3 de 9.8. Según indica el NIST, se basa en que el motor CGI no escapa el guion suave (0xAD), el cual recibe PHP y aplica un mapeo «best fit», ya que interpreta que se quiere poner un guion normal en su lugar, permitiendo así a un atacante añadir argumentos extra para explotar la vulnerabilidad.

PHP es un lenguaje de programación utilizado principalmente para desarrollar páginas web dinámicas y aplicaciones web. Funciona en el servidor y se integra fácilmente con HTML y bases de datos como MySQL.

Gracias a su simplicidad y amplia documentación, PHP es muy popular entre los desarrolladores, permitiendo crear sitios y aplicaciones web robustas de manera eficiente.

La vulnerabilidad aplica a las siguientes versiones de PHP:

  • PHP 8.3 < 8.3.8
  • PHP 8.2 < 8.2.20
  • PHP 8.1 < 8.1.29

Las versiones anteriores, las cuales ya no tienen soporte como PHP 8, PHP 7 y PHP 5 también son vulnerables.

Características principales de la CVE-2024-4577

A continuación, se detallan las características principales de esta vulnerabilidad.

  • Identificador: CVE-2024-4577
  • Fecha de publicación: 09/06/2024
  • Software Afectado: PHP
  • CVSS Score: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical)
  • Versiones afectadas
    • PHP 8.3 < 8.3.8
    • PHP 8.2 < 8.2.20
    • PHP 8.1 < 8.1.29
    • PHP 8
    • PHP 7
    • PHP 5
  • Requisitos de explotación:
    • El software PHP debe estar configurado en modo CGI.
    • Es posible la explotación si los binarios php.exe o php-cgi.exe están expuestos (todas las instalaciones por defecto en XAMPP para Windows).
    • El sistema operativo debe ser Windows.

Mitigación

La solución principal consiste en actualizar urgentemente el software PHP a una de las nuevas versiones parcheadas que corrigen esta vulnerabilidad:

  • 8.3.8
  • 8.2.20
  • 8.1.29

Una mitigación temporal sería reescribiendo la siguiente regla, pero solamente es compatible para instalaciones en chino tradicional, chino simplificado y japonés:

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

Para instalaciones por defecto de XAMPP en Windows se puede optar por comentar la siguiente línea en el fichero httpd-xampp.conf:

# ScriptAlias /php-cgi/ "C:/xampp/php/"

Finalmente se aconseja evaluar la migración a arquitecturas más seguras como Mod-PHP, FastCGI o PHP-FPM.

Detección de la vulnerabilidad

La presencia de la vulnerabilidad puede ser identificada mediante el número de versión o a través del uso de scripts o plantillas de Nuclei.

Se recomienda aplicar el parche de forma urgente, ya que actores maliciosos están usando el ransomware TellYouThePass para explotarlo de forma activa.

Como parte de su servicio de vulnerabilidades emergentes, Tarlogic monitoriza de forma proactiva el perímetro de sus clientes para informar, detectar y notificar urgentemente la presencia de esta vulnerabilidad, así como otras amenazas críticas que podrían causar un grave impacto sobre la seguridad de sus activos.