De ontwikkelaars van PHP hebben een nieuwe versie van de scripttaal beschikbaar gesteld. Versie 5.3.10 dicht een lek dat werd ontdekt door iPhone-hacker Stefan Esser (i0n1c), die ook bekent staat als PHP-beveiligingsdeskundige. Het lek dat met deze versie gedicht wordt maakte het mogelijk op afstand code uit te voeren.

Het lek ontstond na de introductie van beveiligingsupdate 5.3.9 voor PHP. Die patch werd vrijgegeven om een ernstig denial of service-gat (DoS) dat afgelopen december aan het licht kwam, af te dichten. Door een slechte implementatie van die beveiligingsupdate ontstond het nieuwe probleem, dat nu met versie 5.3.10 afgedicht moet worden.

Foute implementatie in 5.3.9

De ontwikkelaars stelden in versie 5.3.9 de variabele max_input_vars in om maximaal 1000 parameters te accepteren, dat moest het uitvoeren van de DoS-aanval onmogelijk maken. Esser ontdekte dat die limiet is te omzeilen en dat het daardoor mogelijk is op afstand code uit te voeren.

Het probleem zit in de afhandeling van de fout als de imput_vars-limiet wordt overschreden. In plaats van het afbreken van het verzoek gaat de uitvoering van het script verder. Hierdoor kan een aanvaller alsnog misbruik maken van de kwetsbaarheid. Inmiddels is er ook een proof of concept beschikbaar.

De ontwikkelaars van de scripttaal raadden gebruikers aan zo snel mogelijk te updaten naar versie 5.3.10.