Ein neuer Angriff vektor auf den Apache HTTP-Server wurde gefunden, der im Update 2.4.50 unbehoben blieb und es ermöglicht, auf Dateien außerhalb des Wurzelverzeichnisses der Website zuzugreifen. Darüber hinaus haben Forscher eine Methode gefunden, die, unter bestimmten nicht standardmäßigen Einstellungen, nicht nur das Lesen von Systemdateien ermöglicht, sondern auch das Ausführen von eigenem Code auf dem Server aus der Ferne. Das Problem tritt nur in den Versionen 2.4.49 und 2.4.50 auf; frühere Versionen sind von der Schwachstelle nicht betroffen. Um die neue Variante der Schwachstelle zu beheben, wurde umgehend die Version Apache httpd 2.4.51 veröffentlicht.
По своей сути новая проблема (CVE-2021-42013) полностью аналогична изначальной уязвимости (CVE-2021-41773) в 2.4.49, разница лишь в иной кодировке символов «..». В частности, в выпуске 2.4.50 была заблокирована возможность использования последовательности «%2e» для кодирования точки, но упущена возможность двойного кодирования — при указании последовательности «%%32%65» Server декодировал её в «%2e», а затем в «.», т.е. символы «../» для перехода в предыдущий каталог можно было закодировать как «.%%32%65/».
Was die Ausnutzung der Schwachstelle durch die Ausführung von Code betrifft, so ist dies möglich, wenn mod_cgi aktiviert ist und ein Basisverzeichnis verwendet wird, in dem die Ausführung von CGI-Skripten erlaubt ist (z.B. wenn die Direktive ScriptAlias aktiviert ist oder das Flag ExecCGI in der Direktive Options angegeben ist). Eine Voraussetzung für einen erfolgreichen Angriff ist außerdem die ausdrückliche Gewährung von Zugriff auf Verzeichnisse mit ausführbaren Dateien, wie z.B. \/bin, oder Zugriff auf das Wurzel-Verzeichnis „\/“ in den Apache-Einstellungen. Da solche Zugriffe normalerweise nicht gewährt werden, ist ein Angriff durch Codeausführung in realen Systemen eher selten.
Jedoch bleibt der Angriff auf den Zugriff auf den Inhalt beliebiger Systemdateien und Quelltexte von Web-Skripten, die für den Benutzer, unter dem der HTTP-Server läuft, lesbar sind, weiterhin aktuell. Für einen solchen Angriff reicht es aus, ein Verzeichnis auf der Website zu haben, das mithilfe der Direktiven „Alias“ oder „ScriptAlias“ konfiguriert ist (DocumentRoot reicht nicht aus), wie z.B. „cgi-bin“.
Ein Beispiel für einen Exploit, der die Ausführung des Dienstprogramms „id“ ermöglicht auf Server: curl ‘http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh’ —data ‘echo Content-Type: text/plain; echo; id’ uid=1(daemon) gid=1(daemon) groups=1(daemon)
Пример эксплоитов, позволяющего вывести содержимое /etc/passwd и одного из web-скриптов (для отдачи кода скриптов в качестве базового должен быть указан определённый через директиву «Alias» каталог, для которого не включено исполнение скриптов): curl ‘http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd’ curl ‘http://192.168.0.1/aliaseddir/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/usr/local/apache2/cgi-bin/test.cgi’
Das Problem betrifft hauptsächlich kontinuierlich aktualisierte Distributionen, wie Fedora, Arch Linux und Gentoo, sowie Ports von FreeBSD. Pakete in stabilen Zweigen konservativer Server-Distributionen wie Debian, RHEL, Ubuntu und SUSE sind nicht anfällig für diese Sicherheitslücke. Das Problem tritt nicht auf, wenn der Zugriff auf Verzeichnisse ausdrücklich durch die Einstellung „require all denied“ verboten wird.
Quelle: opennet.ru
