Otra vulnerabilidad en Apache httpd que permite el acceso fuera del directorio raíz del sitio

Se ha encontrado un nuevo vector de ataque para el servidor http Apache, que permaneció sin corregir en la actualización 2.4.50 y permite el acceso a archivos desde áreas fuera del directorio raíz del sitio. Además, los investigadores han encontrado un método que permite, en presencia de ciertas configuraciones no estándar, no solo leer archivos del sistema, sino también ejecutar remotamente su código en el servidor. El problema sólo aparece en las versiones 2.4.49 y 2.4.50; las versiones anteriores no se ven afectadas. Para eliminar la nueva vulnerabilidad, se lanzó rápidamente Apache httpd 2.4.51.

En esencia, el nuevo problema (CVE-2021-42013) es completamente similar a la vulnerabilidad original (CVE-2021-41773) en 2.4.49, la única diferencia es una codificación diferente de los caracteres “..”. En particular, en la versión 2.4.50 se bloqueó la posibilidad de utilizar la secuencia "%2e" para codificar un punto, pero se perdió la posibilidad de codificación doble: al especificar la secuencia "%%32%65", el servidor la decodificó en "%2e" y luego en " .”, es decir, los caracteres "../" para ir al directorio anterior podrían codificarse como ".%%32%65/".

En cuanto a explotar la vulnerabilidad mediante la ejecución de código, esto es posible cuando mod_cgi está habilitado y se utiliza la ruta base en la que se permite la ejecución de scripts CGI (por ejemplo, si la directiva ScriptAlias ​​​​está habilitada o el indicador ExecCGI se especifica en el Directiva de opciones). Un requisito obligatorio para un ataque exitoso es también proporcionar explícitamente acceso a directorios con archivos ejecutables, como /bin, o acceso a la raíz del sistema de archivos “/” en la configuración de Apache. Dado que normalmente no se concede dicho acceso, los ataques de ejecución de código tienen poca aplicación en sistemas reales.

Al mismo tiempo, sigue siendo relevante el ataque para obtener el contenido de archivos de sistema arbitrarios y textos fuente de scripts web, legibles por el usuario bajo el cual se ejecuta el servidor http. Para llevar a cabo un ataque de este tipo, basta con tener un directorio en el sitio configurado utilizando las directivas “Alias” o “ScriptAlias” (DocumentRoot no es suficiente), como por ejemplo “cgi-bin”.

Un ejemplo de un exploit que le permite ejecutar la utilidad "id" en el servidor: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'echo Tipo de contenido: texto/sin formato; eco; id’ uid=1(demonio) gid=1(demonio) grupos=1(demonio)

Un ejemplo de exploits que le permite mostrar el contenido de /etc/passwd y uno de los scripts web (para generar el código del script, se debe especificar el directorio definido a través de la directiva "Alias", para el cual la ejecución del script no está habilitada). como directorio base): curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' curl 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

El problema afecta principalmente a distribuciones que se actualizan continuamente como Fedora, Arch Linux y Gentoo, así como a ports de FreeBSD. Los paquetes en las ramas estables de las distribuciones de servidores conservadoras Debian, RHEL, Ubuntu y SUSE no se ven afectados por la vulnerabilidad. El problema no ocurre si el acceso a los directorios se deniega explícitamente mediante la configuración "requerir todo denegado".

Fuente: opennet.ru

Añadir un comentario