Zum Hauptinhalt Zur Navigation

PHP: Rechenaufgabe legt Server lahm (Update)

Eine einzige Zahl macht es möglich: Die Scriptsprache PHP ist in der 32-Bit-Variante anfällig für DoS-Angriffe. Mittlerweile wurde der Fehler in den aktuellen Entwicklerversionen von PHP beseitigt.
/ Alexander Syska
253 Kommentare News folgen (öffnet im neuen Fenster)

Durch die fehlerhafte Verarbeitung der 64-Bit-Gleitkommazahl 2.2250738585072011e-308 ist es in der Scriptsprache PHP möglich, einen Denial of Service – kurz DoS – zu provozieren. Der Fehler wurde von Rick Regan(öffnet im neuen Fenster) entdeckt. Schuld ist eine rechnerische Annäherung an die Gleitkommazahl. Bei einem Angriff muss die Zahl lediglich als numerischer Wert übergeben werden.

Laut Nutzerkommentaren sind die PHP-Versionen 5.3.3-6, 5.3.2-1 und 5.3.1 betroffen. Ein Update steht noch nicht zur Verfügung. Bislang bleibt vermutlich nur die Möglichkeit, den Fehler selbst zu umgehen: Dazu muss PHP laut Anwenderberichten(öffnet im neuen Fenster) mit dem Parameter -mfpmath=sse oder mit -ffloat-store neu kompiliert werden. Der Fehler ist bereits im Bug-Tracker von PHP(öffnet im neuen Fenster) vermerkt.

Nachtrag vom 4. Januar 2011, 20:05 Uhr

Laut PHP-Entwickler Rasmus Lerdorf(öffnet im neuen Fenster) geht das Problem auf einen alten Designfehler(öffnet im neuen Fenster) in Intels x87-Design(öffnet im neuen Fenster) zurück. Demnach tritt das Problem bei Prozessoren mit einer x87 FPU (Floating Point Unit) auf, wenn nicht explizit die Verwendung von SSE oder Float-Store erzwungen wird.

Nachtrag vom 5. Januar 2011, 08:10 Uhr

Nach Angaben des PHP-Entwicklers Scott MacVicar wurde der Bug mittlerweile im SVN-Repository von PHP beseitigt. Aktuelle PHP-Snapshots stehen unter snaps.php.net(öffnet im neuen Fenster) zum Download bereit.


Relevante Themen