Eine weitere Schwachstelle in Apache httpd, die den Zugriff außerhalb des Stammverzeichnisses der Site ermöglicht

Für den Apache-HTTP-Server wurde ein neuer Angriffsvektor gefunden, der im Update 2.4.50 unkorrigiert blieb und den Zugriff auf Dateien aus Bereichen außerhalb des Stammverzeichnisses der Site ermöglicht. Darüber hinaus haben Forscher eine Methode gefunden, die es bei Vorliegen bestimmter nicht standardmäßiger Einstellungen ermöglicht, nicht nur Systemdateien zu lesen, sondern ihren Code auch remote auf dem Server auszuführen. Das Problem tritt nur in den Versionen 2.4.49 und 2.4.50 auf; frühere Versionen sind nicht betroffen. Um die neue Schwachstelle zu beseitigen, wurde schnell Apache httpd 2.4.51 veröffentlicht.

Im Kern ähnelt das neue Problem (CVE-2021-42013) vollständig der ursprünglichen Schwachstelle (CVE-2021-41773) in 2.4.49, der einzige Unterschied besteht in einer anderen Kodierung der „..“-Zeichen. Insbesondere wurde in Version 2.4.50 die Möglichkeit, die Sequenz „%2e“ zum Kodieren eines Punkts zu verwenden, blockiert, aber die Möglichkeit einer doppelten Kodierung wurde übersehen – bei der Angabe der Sequenz „%%32%65“ dekodierte der Server diese in „%2e“ und dann in „ .“, d.h. Die „../“-Zeichen zum Wechseln zum vorherigen Verzeichnis könnten als „.%%32%65/“ codiert werden.

Das Ausnutzen der Schwachstelle durch Codeausführung ist möglich, wenn mod_cgi aktiviert ist und der Basispfad verwendet wird, in dem die Ausführung von CGI-Skripten zulässig ist (z. B. wenn die ScriptAlias-Direktive aktiviert ist oder das ExecCGI-Flag in angegeben ist). Optionen-Direktive). Eine zwingende Voraussetzung für einen erfolgreichen Angriff ist außerdem die explizite Gewährung des Zugriffs auf Verzeichnisse mit ausführbaren Dateien, etwa /bin, oder den Zugriff auf das Dateisystem-Root „/“ in den Apache-Einstellungen. Da ein solcher Zugriff normalerweise nicht gewährt wird, sind Codeausführungsangriffe auf reale Systeme kaum anwendbar.

Gleichzeitig bleibt der Angriff relevant, um den Inhalt beliebiger Systemdateien und Quelltexte von Webskripten zu erhalten, die für den Benutzer lesbar sind, unter dem der http-Server läuft. Um einen solchen Angriff durchzuführen, reicht es aus, ein Verzeichnis auf der Site mit den Anweisungen „Alias“ oder „ScriptAlias“ (DocumentRoot reicht nicht aus) zu konfigurieren, beispielsweise „cgi-bin“.

Ein Beispiel für einen Exploit, der es Ihnen ermöglicht, das Dienstprogramm „id“ auf dem Server auszuführen: 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)

Ein Beispiel für Exploits, mit denen Sie den Inhalt von /etc/passwd und eines der Webskripte anzeigen können (zur Ausgabe des Skriptcodes muss das durch die „Alias“-Direktive definierte Verzeichnis angegeben werden, für das die Skriptausführung nicht aktiviert ist als Basisverzeichnis): 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'

Das Problem betrifft vor allem laufend aktualisierte Distributionen wie Fedora, Arch Linux und Gentoo sowie Portierungen von FreeBSD. Pakete in den stabilen Zweigen der konservativen Serverdistributionen Debian, RHEL, Ubuntu und SUSE sind von der Schwachstelle nicht betroffen. Das Problem tritt nicht auf, wenn der Zugriff auf Verzeichnisse mithilfe der Einstellung „Alles verweigern erforderlich“ explizit verweigert wird.

Source: opennet.ru

Kommentar hinzufügen