, den 04.05.2012 (Letztes Update: 30.03.2016)

PHP-Sicherheitslücke gefährdet Scripte auf CGI-Servern

php
php - Logo

Es gibt eine Sicherheitslücke in der CGI-Version von PHP, die beinahe alle Versionen betrifft und bislang nicht geschlossen wurde. Web-Server, die ihre PHP-Scripte per CGI ausführen stellen ein mögliches Risiko dar.

Mit einem manipulierten Parameter in PHP-Scripten, die auf dem Web-Server per CGI-Modul ausgeführt werden, kann der Quellcode des Scripts eingesehen werden. Sind darin Passwörter, etwa für die Datenbank oder FTP enthalten, ist das bereits eine mittlere Katastrophe. Doch es soll ebenfalls möglich sein, eigenen Code einzuschleusen und auszuführen.

In Realität nur wenige Konfigurationen betroffen

Die Warnung muss ernst genommen werden. Doch in der Praxis dürften solche Konfigurationen kaum anzutreffen sein. Trotzdem produziert Kleinvieh auf Mist. Immerhin handelt es sich um die älteste Methode PHP-Scripte auszuführen, PHP über CGI laufen zu lassen. Diese ist heute in vielerlei Hinsicht überholt. Wer nur eine Webseite auf einem Server betreibt, ist allein aus Performance-Gründen mit PHP als Modul des Webservers besser bedient. Wer die Sicherheit von CGI mit guter Performance verbinden möchte, greift zu FCGI oder suPHP. Alle drei Alternativen sind in einer oder mehreren Disziplinen besser geeignet als das ursprüngliche CGI und nicht von besagter Lücke betroffen.

Ist mein Webserver betroffen?

Wer prüfen möchte, ob der eigene Server von der PHP-Sicherheitslücke betroffen ist, kann dies herausfinden, indem er den Parameter -s an den Scriptaufruf per URL anhängt: http://example.com/index.php?-s.

Update vorhanden

Mit PHP 5.3.12 und 5.4.2 gibt es bereits ein Update, das aber ein kleines Problem aufweist: Man wollte den Fehler-Report eigentlich geheimhalten, um sich ungestört um einen funktionierenden Fix zu kümmern. Durch einen technischen Fehler wurde der Bugreport vorzeitig veröffentlicht – die Entwickler haben sich so selbst unter enormen Zeitdruck gesetzt. Entsprechend ist derzeit nur der simpelste aller möglichen Fälle vom Fix abgedeckt und PHP somit noch verwundbar.

Wirksamer Schutz vor Sicherheitslücke

Der momentan einzig wirksame Schutz gegen die Sicherheitslücke ist entweder auf PHP über CGI zu verzichten und stattdessen FCGI oder suPHP zu nutzen oder in der .htaccess-Datei (bei Nutzung des Apache-Webservers) folgenden Zweizeiler nachzutragen:

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]

Unschuld von PHP?

Grotesk ist, dass PHP keine rechte Schuld an der Sicherheitslücke hat. Denn PHP hat lediglich die CGI-Spezifikation implementiert, die im Abschnitt 7 das Verhalten explizit vorsieht. Ein gewolltes Verhalten im Rahmen von CGI ist im Umfeld von PHP schädlich.

Zugehörige Plattformen
Android: Neuer Install-It-Yourself-Trojaner im Umlauf
GNTM 2012: Sarah-Anessa schon im Finale?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Zuletzt kommentiert