Itdaily - PHP2Shell: groot lek in PHP actief misbruikt, nog voor beschikbaarheid patch

PHP2Shell: groot lek in PHP actief misbruikt, nog voor beschikbaarheid patch

Illustratie van een serverruimte met rode alarmlampen; op het scherm een waarschuwingsdriehoek met 'PHP'.

Een groot lek in PHP laat aanvallers op afstand code uitvoeren op webservers wereldwijd. Actief misbruik begon vóór de beschikbaarheid van de patch. Die is er nu wel.

Het PHP-project heeft iets vroeger dan verwacht patches gedeeld voor de eerder gelekte kwetsbaarheden in de PHP-programmeertaal. Bijna 70 procent van alle websites wereldwijd is getroffen. De updates lossen twee kritieke kwetsbaarheden op, die al actief misbruikt werden. Aanvallers kunnen via de bugs in kwestie code uitvoeren zonder dat ze moeten inloggen. De hoge CVSS-score van 9,2 is dan ook toepasselijk.

PHP-versies 8.5.12, 8.4.27, 8.3.36 en 8.2.35 lossen de problemen op. Je vindt ze hier. Alle andere versies zijn kwetsbaar. Updaten moet de allerhoogste prioriteit zijn voor iedere organisatie met een website of app die op PHP vertrouwt. Beveiligingsexperts verwachten dat misbruik op toenemende schaal een kwestie van uren is, geen dagen of weken.

Ongeveer 69,3 procent van alle websites wereldwijd maakt gebruik van PHP.

Nog voor de details over de bug bekend waren, had het risico al een naam: PHP2Shell. De referentie naar het impactvolle Log4Shell is daarbij niet toevallig: ongeveer 69,3 procent van alle websites wereldwijd maakt gebruik van PHP.

De bugs in detail

PHP2Shell draait om CVE-2026-109618 en CVE-2026-109619. Bij CVE-2026-109618 kan de afhandeling van een geheugentekort PHP onderbreken terwijl de interne gegevens van een verzoek nog maar half zijn ingevuld. Wanneer PHP het verzoek daarna opruimt, kan het die ongeldige gegevens als geldig behandelen. Bij CVE-2026-109619 blijft interne informatie van een verzoek bestaan nadat het geheugen erachter al is vrijgegeven. Een volgend verzoek in hetzelfde werkproces kan die verouderde informatie gebruiken voor PHP ze opnieuw instelt.

Volgens PHP lopen alle installaties die webverzoeken afhandelen risico, of ze nu met PHP-FPM, Apache met mod_php, php-cgi, FrankenPHP of LiteSpeed werken. Het risico is het grootst bij mod_php. Daar bestaat nu al een werkende exploit waarbij één verzoek zonder authenticatie de aanval start, nog voor er applicatiecode draait.

Lek in PHP zelf

PHP is een belangrijke programmeertaal waarop een groot deel van het web vertrouwt. Omdat het lek in PHP zelf zit, loopt elke toepassing die op een kwetsbare versie draait een risico, hoe zorgvuldig de eigen code ook geschreven is. Huntress noemt contentmanagementsystemen als WordPress, Drupal, Joomla en Magento, beheerpanelen als cPanel en Plesk en software van toestellen waarin PHP verwerkt zit.

“Dit is geen probleem dat je oplost door alleen WordPress of plugins bij te werken”, verduidelijkt Vaisha Bernard, Chief Hacker bij Eye Security. “De kwetsbaarheid zit in PHP zelf, de software waarop de website draait. Organisaties moeten de PHP-versie van hun publieke websites controleren en de officiële update installeren.”

Dit is geen probleem dat je oplost door alleen WordPress of plugins bij te werken.

Vaisha Bernard, Chief Hacker Eye Security

De fix bestaat voor PHP 8.2 tot en met 8.5. Linuxdistributies en leveranciers van langetermijnondersteuning (LTS) kregen de patches vooraf, dus beheerders kijken best of er al bijgewerkte pakketten klaarstaan. Organisaties die klant zijn bij gedeelde webhosting, moeten op hun provider vertrouwen voor het patchen van PHP. Zij kunnen controleren of de update al is doorgevoerd. Dat zou intussen het geval moeten zijn.

Combell had de patch bijvoorbeeld al iets meer dan een halfuur voor de publieke release doorgevoerd. ITdaily draait sinds voor 15u op de bijgewerkte versie. Het is een goed idee voor beheerders om te dubbelchecken of hun website of toepassing effectief naar de recentste PHP-versie is gezet.

Zeker bij oudere installaties kan dat een probleem geven. PHP 8.1 en ouder krijgen geen updates meer van het PHP-project. Gezien de ernst van de lekken stelde het securityteam wel minimale backports in de broncode beschikbaar voor PHP 7.4, 8.0 en 8.1, voor wie zelf compileert of geen LTS-leverancier heeft.

Offline op eigen initiatief

In België had DPG Media als voorzorg enkele van zijn sites offline gehaald, zo meldt het bedrijf zelf. Dat vond Bernard geen slecht idee: “Voor websites met PHP die vanaf het internet bereikbaar zijn, is het verstandig de toegang tijdelijk te beperken of de site offline te halen totdat de officiële update is toegepast. Controleer na de update ook dat de website daadwerkelijk de bijgewerkte versie gebruikt en of er niet al misbruik van is gemaakt.”

Ook andere websites, zoals die van de Vrije Universiteit Brussel en enkele ziekenhuizen, gingen offline. In België raadt het CCB die stap ook aan. De instantie heeft ook haar eigen website tijdelijk op onderhoudsmodus gezet. Zodra patches geïnstalleerd zijn, kunnen alle sites terug online. PHP2Shell heeft zo de verdienste om wereldwijd site offline te halen, ook zonder inmenging van hackers.

Mitigeren kan (deels)

Er zijn ook andere opties om aanvallen te mitigeren. Cloudflare had al voor de lancering van de patch een eerste reeks WAF-regels uitgerold tegen de gekende aanvalsvectoren, meldt Dane Knecht, CTO van Cloudflare. Een web application firewall (WAF) bekijkt het verkeer naar een website en houdt verzoeken tegen die op een gekende aanval lijken, voor ze de server bereiken. De regels gelden voor PHP-sites waarvan het verkeer via Cloudflare loopt, en alle klanten krijgen ze, ook wie een gratis abonnement heeft.

Voor websites met PHP die vanaf het internet bereikbaar zijn, is het verstandig de toegang tijdelijk te beperken of de site offline te halen totdat de officiële update is toegepast.

Vaisha Bernard, Chief Hacker Eye Security

PHP publiceerde zelf ook enkele strategieën waarmee gebruikers hun toepassingen kunnen beschermen in afwachting van een update. Die verkleinen volgens de organisatie het risico, maar PHP benadrukt dat enkel een update de installatie opnieuw veilig maakt.

Eerste aanvallen

Knecht zag in de ochtend van 21 oktober al eerste aanvallen opduiken en zei dat Cloudflare de regels bijwerkt zodra er nieuwe aanvalsvectoren bekend raken. “Dit is alleen een noodoplossing”, schrijft hij op X. “Patch zodra PHP de update vandaag uitbrengt.” Dat is dus nu het geval.

Het nieuws lekte op 20 oktober uit, voor de gecoördineerde bekendmaking die volgens watchTowr pas op donderdag gepland stond. Sinds de onthulling van de patches staan de technische details in twee advisories van PHP op GitHub. Daar kunnen nu ook hackers mee aan de slag om hun aanvallen op punt te stellen.

Het is nu voor iedereen belangrijk om alle servers en toepassingen met PHP in kaart te brengen en zo snel mogelijk te updaten. Systemen die aan het internet hangen en zo bereikbaar zijn, verdienen prioriteit. Wie de server niet zelf beheert, vraagt de hostingprovider om de update meteen toe te passen.

PHP2Shell is nu al een illustratie van de extreem ingekorte tijd tussen de bekendmaking van een CVE en actief misbruik. Die tijd is de laatste jaren onder impuls van AI van weken tot dagen en dan uren geslonken. AI kan immers snel op basis van bijvoorbeeld een patch of andere informatie ontdekken waar een lek zich precies bevindt, en hoe het misbruikt kan worden. In dit geval doken de eerste tekenen van misbruik zelfs op voor de patch beschikbaar was.

Nu start er een race: PHP heeft de bug weggewerkt, maar het is aan beheerders om ervoor te zorgen dat ze de recentste versie van PHP draaien. Aanvallers zullen nu in grote getalen opzoek gaan naar servers waar de achterpoort nog wel op een kier staat.