Nueva vulnerabilidad 0-day en los servidores apache

En esta entrada vamos a comentar la nueva vulnerabilidad descubierta hace tan solo unos días, que afecta a los servidores Apache que se encuentren en la versión 2.4.49.

Esta vulnerabilidad, del tipo Path traversal, o salto de directorio en castellano, se basa en un fallo a la hora de la normalización de rutas en el servidor, permitiendo a un atacante externo leer cualquier archivo incluso fuera del Document Root, aunque para esto, se tiene que dar la situación en la que los archivos fuera del Document Root no estén protegidos por la directiva ‘require all denied‘. Este fallo puede ser utilizado para filtrar el código fuente de archivos interpretados como scripts CGI.

Esta vulnerabilidad ha sido registrada con el CVE-2021-41773.

La explotación de esta vulnerabilidad es relativamente sencilla, tal y como puede verse en la siguiente prueba de concepto:

Debido al impacto de la vulnerabilidad, se han desarrollado en los últimos días plantillas y plugins para detectar esta vulnerabilidad con los diferentes scanners de vulnerabilidades, como nuclei o nessus.

Aun así, debido a lo sencillo que es detectarla, a continuación, se proporciona un comando para bash en una línea que permite detectarlo:

cat targets.txt | while read host do ; do curl --silent --path-as-is --insecure "$host/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd" | grep "root:*" && echo "$host \033[0;31mVulnerable\n" || echo "$host \033[0;32mNot Vulnerable\n";done

Los desarrolladores ya han publicado una versión que soluciona esta vulnerabilidad, por lo que se recomienda encarecidamente parchear cuanto antes a la versión 2.4.50, la última que soluciona esta vulnerabilidad.