Patch in PHP 5.2.3 unwirksam [Update]

Die Anfang des Monats erschienene PHP-Version 5.2.3 gab zwar vor, eine Sicherheitslücke in der Funktion chunk_split() zu beseitigen, der eingebaute Fix ist aber unwirksam. Über die Lücke soll sich möglicherweise Schadcode einschleusen lassen.

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

Die Anfang des Monats erschienene PHP-Version 5.2.3 sollte zwar eine Sicherheitslücke in der Funktion chunk_split() beseitigen, nach Angaben des PHP-Sicherheitsspezialisten und Mit-Initiator des Month of PHP Bugs Stefan Esser ist dies aber nicht der Fall. Laut Esser war der ursprüngliche Fix nicht nur kaputt, sondern auch mehr oder minder Blödsinn, da das eigentliche Problem, ein Integer Overflow, nur in eine andere Zeile verschoben wurde. Aufgrund dessen wurde nun ein weiterer Fix entwickelt, der das Problem endgültig beheben soll -- allerdings bislang offiziell nur im CVS von PHP.

Esser spekuliert darüber, ob die ursprünglichen Entdecker der Lücke oder die Linux-Distributoren die PHP-Entwickler auf das Problem aufmerksam gemacht haben könnten. Immerhin würden die Linux-Distributoren mit ihren Regression Tests, also dem Testen auf Funktion und dem Wiedereinschleichen alter Fehler, zuverlässige Arbeit liefern. Der Fehler in chunk_split() führt zu einem Heap Overflow, was im günstigsten Fall zu einem Absturz des PHP-Prozesse führt. Möglicherweise lässt sich darüber auch Code einschleusen und ausführen.

Update
Offenbar ist auch der Patch des Patches nicht ganz fehlerfrei: Die Menge des zu belegenden Speichers wird in einer Gleitkommazahl (float) berechnet und dann auf eine Integer-Zahl gecastet, was bei sehr großen Zahlen zu einer kleineren als der benötigten Zahl führt. In der Folge wird zu wenig Speicher reserviert.

Siehe dazu auch:

(dab)