Vulnerabilidad de inyección de comandos descubierta en PHP

El equipo de desarrollo de PHP ha publicado una vulnerabilidad identificada como CVE-2024-5585, con severidad alta. Esta falla permite a los atacantes ejecutar comandos arbitrarios en los sistemas afectados, incluso cuando existen mecanismos de seguridad.

  • CVE-2024-5585 (CVSS 7.7): Esta falla se origina a partir de una solución incompleta para la vulnerabilidad CVE-2024-1874, la cual tenía la posibilidad de inyectar comandos arbitrarios en sistemas vulnerables. Si bien el problema original fue abordado en parte, se descubrió una técnica de bypass. Esta técnica es capaz de agregar espacios finales a los nombres de los comandos dentro de la función proc_open(), permitiendo a los atacantes eludir la protección prevista e inyectar comandos arbitrarios en los sistemas Windows.

La vulnerabilidad surge debido a una validación insuficiente de los argumentos del comando cuando se usa la función proc_open() con sintaxis de matriz. En Windows, esto permite a los atacantes manipular argumentos de comandos incluso cuando la opción bypass_shell está habilitada, lo que genera escenarios de inyección de comandos. La explotación exitosa podría resultar en un compromiso total de los servidores afectados. Otorgando a los atacantes la capacidad de ejecutar código arbitrario.

Producto y versiones afectadas:

  • Para PHP 8.1 versiones anteriores a 8.1.29 
  • Para PHP 8.2 versiones anteriores a 8.2.20
  • Para PHP 8.3 versiones anteriores a 8.3.8

Solución:

Actualizar a las versiones más recientes de cada producto afectado para mitigar estas vulnerabilidades. Las versiones corregidas son:

  • PHP en sus versiones 8.1.29, 8.2.20 o 8.3.8.

Recomendaciones:

  • Actualizar PHP a las versiones corregidas 8.1.29, 8.2.20, o 8.3.8 para mitigar la vulnerabilidad.
  • Revisar los registros del sistema en busca de signos de explotación o actividad sospechosa.
  • Implementar medidas adicionales de seguridad y monitoreo para prevenir futuros ataques similares.

Referencias: