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.
Das neue Problem (CVE-2021-42013) ist im Wesentlichen identisch mit der ursprĂŒnglichen Schwachstelle (CVE-2021-41773) in 2.4.49, der einzige Unterschied liegt in einer anderen Kodierung der Zeichen â..â. Insbesondere wurde in Version 2.4.50 die Möglichkeit, die Sequenz ââ zur Kodierung eines Punkts zu verwenden, blockiert, jedoch wurde die Möglichkeit der doppelten Kodierung ĂŒbersehen â bei Angabe der Sequenz â%â Server dekodiert es zu ââ, und dann zu â.â, d.h., die Zeichen â..\/â fĂŒr den Wechsel zum vorherigen Verzeichnis konnten als â.%\/â kodiert werden.
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\/..%\/..%\/..%\/..%\/..%\/bin\/shâ âdata âecho Content-Type: text\/plain; echo; idâ uid=1(daemon) gid=1(daemon) groups=1(daemon)
Beispiel fĂŒr Exploits, die das Auslesen des Inhalts von /etc/passwd und eines der Web-Skripte ermöglichen (fĂŒr die Bereitstellung des Codes von Skripten als Basis muss ein bestimmtes Verzeichnis angegeben werden, das durch die Direktive âAliasâ definiert ist und in dem die AusfĂŒhrung von Skripten nicht eingeschaltet ist): curl âhttp:\/\/192.168.0.1\/cgi-bin\/..%\/..%\/..%\/..%\/..%\/etc\/passwdâ curl âhttp:\/\/192.168.0.1\/aliaseddir\/..%\/..%\/..%\/..%\/..%\/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
