Zum Hauptinhalt Zur Navigation

Sicherheitslücken in PHP

Angreifer können fremden Code einschleusen. Der IT-Sicherheitsexperte Stefan Esser warnt vor einer kritischen Sicherheitslücke in PHP. Betroffen sind sowohl PHP 4 als auch die Vorabversionen von PHP 5. Durch einen Fehler bei der Speicherbegrenzung (memory_limit) können Angreifer möglicherweise beliebigen Code auf fremden Systemen ausführen. Eine weitere Sicherheitslücke fand Esser, der selbst an der Entwicklung von PHP mitarbietet, in der Funktion "strip_tags()".
/ Jens Ihlenfeld
Kommentare News folgen (öffnet im neuen Fenster)

Am 28. Juni wies Gregori Guninski(öffnet im neuen Fenster) auf eine mögliche Verwundbarkeit von Apache 2 hin, die DOS-Angriffe ermöglicht. Die als wenig riskant eingestufte Sicherheitslücke berge aber eine große Gefahr für Module von Drittanbietern, die Guninski nicht bedacht habe, so Esser.

Vor diesem Hintergrund untersuchte Stefan Esser(öffnet im neuen Fenster) nun PHP in Bezug auf diese Problematik. Dabei fand Esser auch Wege, dieses Problem auf anderen Web-Servern wie Apache 1.3.31 auszunutzen. Im Zusammenspiel mit PHP bieten sich nun aber auch Möglichkeiten, auf diesem Wege fremden Code einzuschleusen und auszuführen. Zwar tritt das Problem nur in bestimmten Funktionen auf, die zum Teil nur in einigen wenigen Konstellationen ausnutzbar sind, doch darunter befindet sich unter anderem die Funktion register_globals(), die auf vielen PHP-Systemen aktiviert ist.

Die Sicherheitslücke sei auf nahezu allen Plattformen ausnutzbar, so Esser weiter. Dies schließt auch das von Esser entwickelte Hardened-PHP bis 0.1.2 mit ein. Auch sei es nicht notwendig, sehr große Datenmengen per POST zu senden, um das Speicherlimit zu erreichen.

Zudem entdeckte Esser eine Sicherheitslücke in der Funktion strip_tags()(öffnet im neuen Fenster) . Diese soll eigentlich dafür sorgen, gefährliche HTML-Tags aus Zeichenketten herauszufiltern und so zu verhindern, dass böse Zeitgenossen über Foren oder Gästebücher die Browser anderer Nutzer gefährden. Unter Umständen ist es aber dennoch möglich, Javascript in Browser wie den Internet Explorer oder Safari einzuschleusen.

Die PHP-Entwickler haben auf die Sicherheitslücke bereits reagiert und mit PHP 4.3.8 eine neue Version von PHP 4 veröffentlicht. In PHP 5.0.0, das heute erschienen ist, wurde das Problem ebenfalls beseitigt. Betroffen sind hier nur die Vorabversionen bis einschließlich PHP 5.0.0 RC3. Wer PHP mit einkompilierter Unterstützung für "memory_limit" nutzt, sollte auf eine der neuen Versionen updaten. Als Workaround lässt sich auch die Funktion "memory_limit" in der Konfiguration abschalten, was aber keine wirkliche Sicherheit bringt.


Relevante Themen