Die Schwachstelle im Datei-Upload-Code erlaubt es, das Array “GLOBALS” zu überschreiben, wenn “register_globals” aktiviert ist. Dies könne zu unerwarteten Sicherheitsproblemen in PHP-Code führen, das an sich als sicher angesehen wird.
Esser befürchtet daher Konsequenzen für viele PHP-Applikationen, z.B. solche, die PEAR.php verwenden oder auch vBulletin. Es sei auch möglich, auf diesem Weg fremden Code auszuführen.
Das Problem wirkt sich laut Esser auch auf Applikationen aus, die das Einbetten lokaler Dateien erlauben und im Safe-Mode von PHP laufen.
Wer den Hardening-Patch für PHP einsetzt, soll auf der sicheren Seite sein, allen anderen legt Esser dringend ein Update auf die neu erschienene Version nahe.
Neben diesem kritischen Problem weist Esser auf weitere Sicherheitslücken in der Funktion parse_str() und eine XSS-Lücke in der phpinfo() hin.
Insgesamt sieben sicherheitskritische Fehler entdeckt
Stefan Esser von Hardened-PHP-Projekt weist auf sieben Sicherheitslücken in der freien Scriptsprache PHP hin, mit denen unter anderem beliebiger Code auf verwundbaren Systemen ausgeführt werden kann.
Esser hat die Sicherheitslücken bei der Arbeit an Hardened-PHP entdeckt, allerdings meldet auch Martin Eiszner von Sec-Consult für die kritischste der Lücke “Entdecker-Ansprüche” an. Esser weist den Vorwurf zurück, die von ihm entdeckten Sicherheitslücken hätten mit der von Eiszner entdeckten nichts zu tun, so Esser.
Zwei Fehler in der Funktion unserialize() erlauben es, im Zusammenspiel mit speziell präparierten Strings beliebigen Code auf entsprechenden Systemen auszuführen. Zahlreiche PHP-Applikationen nutzen diese Funktion, um Cookie-Inhalte umzuwandeln, darunter unter anderem phpBB2, Invision Board, vBulletin, Woltlab Burning Board 2.x., Serendipity und phpAds(New).
Weitere Fehler in pack() und unpack() können zu Integer-Overflows führen. Zwei weitere Fehler erlauben es, Sicherungsmechanismen des “Safe-Mode” von PHP zu umgehen. Das Abschneiden von Pfaden durch einige Implementierungen der Funktionen realpath() erlaubt es Angreifern unter Umständen, beliebige Dateien einzubinden.
Weitere Fehler finden sich in den Erweiterungen “shmop” und “exif” sowie der Funktionen php_addslashes() und in sehr seltenen Umständen bei Datei-Uploads. Hinzu kommt das Problem in unserialize() auf das Martin Eiszner hinweist.
Eine weniger kritische Lücke betrifft die Funktion phpinfo(), durch die sich HTML-Code beispielsweise zum Auslesen von Domain-Cookies in die Ausgabe der Funktion einschleusen lasse. Diese Funktion sollte allerdings ohnehin nur in Testumgebungen eingesetzt werden. Als ebenfalls unkritisch wird eine Sicherheitslücke in der Funktion parse_str() eingeschätzt. So sei es unter Umständen möglich, durch Skripte, die die Funktion parse_str() mit nur einem Argument aufrufen, den PHP-Kern vorübergehend wieder in den Zustand register_globals=on zu versetzen, selbst wenn in der php.ini Gegenteiliges konfiguriert wurde.
Noch keine Kommentare.
RSS feed für Kommentare zu diesem Post. TrackBack URL