Getal laat PHP bevriezen

Toegevoegd door Bram Boos, 12 jaar geleden

Getal laat PHP bevriezenDe ontwikkelaars van de scripttaal PHP hebben een bug in de software gefikst die servers laat crashen. 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.

Bron: webwereld.nl

Gerelateerde nieuwsberichten

02/01/2020 PHP leren voor beginners: wat is het en past het bij jou?
27/10/2019 Lek ontdekt in PHP bij gebruik van Nginx
02/08/2018 PHP brengt eerste beta uit voor PHP 7.3

 

Er zijn 6 reacties op 'Getal laat php bevriezen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Tobias Tobias
Tobias Tobias
12 jaar geleden
 
Wow!
3 januari een fout ontdekt
4 januari gerepareerd

Daar kan microslof nog wat van leren met IE en Windows
Bram Boos
Bram Boos
12 jaar geleden
 
0 +1 -0 -1
@Tobias; Zeker weten!
Roel -
Roel -
12 jaar geleden
 
1 +1 -0 -1
Toen ik hem op mijn webhosting uittestte, liep de pagina vast en na 30 seconden kreeg ik een timeout. Toen ik die timeout uitgezet had met ini_set() bleef ie oneindig doorgaan. Na een paar minuten heb ik hem maar uitgezet.
Toby hinloopen
toby hinloopen
12 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
PHP <?=phpversion()?>
<br>
<?=PHP_INT_MAX?>
<br>
<?=2.2250738585072011e-308?>
<br>
<?=floatval('2.2250738585072011e-308')?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
PHP 5.3.1
2147483647
2.22507385851E-308
2.22507385851E-308


Werkt gewoon :(
Maarten PHP
Maarten PHP
12 jaar geleden
 
na ik oude localhost niet proberen
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Karl Karl
Karl Karl
12 jaar geleden
 
0 +1 -1 -1
PHPer PHPer 46 minuten geleden:
na ik oude localhost niet proberen

Wow, we hebben weer een taalwonder...

Overigs zijn die prutsers van php gewoon stom geweest en hebben een oude techniek gebruikt. Altijd controleren wat het doet en of het geschikt is als je iets kopieert!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Labels

PHP nieuws opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.