buy viagra
buy cialis
cheap cialis
generic viagra
06.01.2011, 13:39 Uhr

PHP-Fehler führt zu Endlosschleife: Verhindern Sie die 100%-CPU-Auslastung Ihrer Shared-Hosting-Systeme

Ein Fehler in PHP sorgt bei der Umwandlung eines bestimmten Wertes dafür, dass eine Endlosschleife entsteht und den Prozessor Ihres Servers voll auslastet. Das ist besonders für Shared-Hosting-Systeme gefährlich, bei denen sich häufig mehrere Hundert Kunden einen PHP-Interpreter teilen. Als ISP sollten Sie daher zeitnah das nun veröffentlichte PHP-Patch einspielen.

Der Fehler tritt konkret bei der Umwandlung der Zeichenkette „2.2250738585072011e-308“ in eine Gleitkommazahl auf. Die Umwandlung mündet in einer Endlosschleife. Bei dem offiziell als PHP-Bug 53632 bezeichneten Fehler handelt es sich um ein bereits länger bekanntes Problem, das jedoch nur bei der Verarbeitung bestimmter Zahlenwerte mit der x87 FPU (Floating Point Unit) auftritt. Die x87 FPU ist eine Erweiterung der x86-Architektur. Sie kommt bei Prozessoren von Intel und AMD zum Einsatz. Das Problem tritt bisher jedoch nur bei 32-Bit-Prozessoren von Intel auf.

Beachten Sie: Die Endlosschleife wird selbst dann ausgelöst, wenn Sie mit dem Parameter „max_execution_time“ die maximale Ausführungszeit begrenzen. Dieser Parameter wird häufig als Schutzmechanismus auf Shared-Hosting-Systemen aktiviert, ist in diesem Fehlerfall jedoch machtlos.

Betroffen von der Endlosschleife sind die PHP-Versionen 5.3 und 5.2. In der kommenden PHP-Version 5.3.5 haben die Entwickler den Fehler bereits behoben. Auch in PHP 5.2 wurde das Problem mit Revision 307095 der betroffenen Datei „zend_strtod.c“ behoben.

Bis zum Erscheinen der neuen Version 5.3.5 sollten Sie die Schwachstelle auf Ihren Systemen mit dem im SVN-Repository bereitgestellten Patch schließen.

Update vom 07.01., 11:02:
Die PHP-Entwickler haben nun zwei neue Versionen bereitgestellt, die das Problem beheben. Wenn Sie PHP 5.3 verwenden, sollten Sie möglichst zeitnah auf Version 5.3.5 wechseln. Bei der Verwendung von PHP 5.2 beheben Sie den Fehler mit der Verwendung von Version 5.2.17. Die Versionen stehen ab sofort zum Download bereit.