Ontwikkelaars van de scriptsoftware PHP hebben een bug gerepareerd die servers waarop de software is geïnstalleerd kan laten bevriezen . Deze bug treedt op als iemand een getal als 2.2250738585072011e-308 (ook in niet-wetenschappelijke notatie) om wil zetten naar een zwevendekommagetal. Dat is de digitale versie van de wetenschappelijke notatie van getallen.

Infinite loop

Door die opdracht uit te voeren komt de PHP-software in een infinite loop terecht. Het cpu-gebruik loopt daardoor op naar 100% en de computer waarop de opdracht wordt uitgevoerd bevriest. Dat geldt echter alleen als die computer een x86 processor heeft en een 32-bits versie van PHP 5.2 of 5.3 draait.

Meerdere gebruikers van PHP merken op dat deze bug is uit te buiten door kwaadwillenden. Die kunnen een ongepatchte server laten crashen door het grote getal mee te sturen als parameter in een GET-request. Met dat commando vraagt een webbrowser pagina’s van de webserver op.

Nieuwe versie

De bug werd maandag 3 januari voor het eerst gemeld. Woensdag kwam er al een snelle patch uit voor de module in de software die de bug veroorzaakte. Inmiddels hebben de ontwikkelaars van PHP nieuwe versies van de software vrijgegeven waarin het probleem helemaal is opgelost.

Ook het volledig opnieuw compileren van PHP met enkele aangepaste instellingen voor zwevendekommagetallen lost het probleem op, zo melden de ontwikkelaars van de software.

Script om te testen

PHP heeft een script online gezet waarmee serverbeheerders na kunnen gaan of hun systemen vatbaar zijn voor de bug. Is dat zo, dan raadt PHP hen met klem aan om zo snel mogelijk de nieuwste versie van de software te installeren.

Ook Zend Technologies brengt een patch uit voor het commerciële ZendServer. Een applicatieserver met een geoptimaliseerde versie van PHP. De module in PHP die last heeft van de bug is namelijk oorspronkelijk gemaakt door Zend. Hun versie van de software is dus ook vatbaar voor het probleem.