Zahlreiche Schwachstellen in Skriptsprache PHP

Durch mehrere Schwachstellen in der Skript-Sprache PHP kann ein Angreifer eigenen Code auf einen Server schleusen und ausführen; die Entwickler haben neue Versionen von PHP mit Bugfixes bereitgestellt.

In Pocket speichern vorlesen Druckansicht 393 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Daniel Bachfeld

Durch mehrere Schwachstellen in der Skript-Sprache PHP kann ein Angreifer eigenen Code auf einen Server schleusen und ausführen. Nach Angaben von Stefan Esser lassen sich einige der insgesamt sieben Lücken nur mit einem gültigen Nutzerkonto ausnutzen, einige ermöglichen aber auch den Angriff über ein Netzwerk. Esser hat die Fehler während der Entwicklung von Hardened-PHP entdeckt, das die bereits vorhandene Codebasis von PHP mit neuen Sicherheitsfunktionen ausstattet.

So ist beispielsweise in der Funktion pack() ein Integer Overflows enthalten, mit der ein Angreifer die Restriktionen des Safe Modes umgehen kann. Durch einen Integer Overflow in unpack() lassen sich unter Umständen Teile des Speichers, etwa des Apache-Prozesses auslesen. Auch ist die Funktion realpath() fehlerhaft, sodass man beispielsweise mit zu langen Pfadangaben auf bestimmten Betriebssystemen auf beliebige Skripte verweisen kann (include). Am kritischsten sind zwei Fehler in unserialize(), die in Kombination miteinander Zugriffe auf ungemappten Speicher gewähren und so das Einschleusen und Ausführen von Code über das Netzwerk erlauben. Laut Esser genügt dazu eine bestimmte Zeichenkette. PHP-Applikationen wie phpBB2, Invision Board, vBulletin und viele andere sind somit angreifbar, da sie Cookies über diese Funktion in ein eigenes Format übertragen. Nähere Angaben dazu sind dem Original-Advisory zu entnehmen.

Betroffen sind PHP4 bis einschließlich 4.3.9 sowie PHP5 bis einschließlich 5.0.2. Die PHP-Entwickler haben neue Versionen zur Verfügung gestellt, in denen noch zahlreiche andere Fehler beseitigt sind und empfehlen allen Anwendern dringend diese zu installieren. Darüber, wer welche Fehler entdeckt hat, gibt es nun ein kleines Hickhack. Kurz nach Essers Advisory erschien ein Posting von Martin Eiszner, der für sich in Anspruch nimmt, die unserialize()-Lücke als Erster gefunden zu haben.

Siehe dazu auch: (dab)