Op 21 oktober 2026 bracht het PHP-project noodupdates uit voor twee kritieke lekken, samen bekend als PHP2Shell. Ze laten een aanvaller een webserver overnemen zonder wachtwoord, en in sommige configuraties zelfs voordat de code van de website zelf draait. Binnen enkele uren na de fix werden al misbruikpogingen gezien.
PHP draait naar schatting 75 tot 80% van alle websites, WordPress inbegrepen, dus dit raakt een heel groot deel van het web. Dit is er gebeurd, dit is wie risico loopt, en dit kunt u nu en in de toekomst doen.
Wat PHP2Shell is
PHP2Shell bestaat uit twee afzonderlijke bugs in de kern van PHP zelf, niet in een plug-in of thema:
- CVE-2026-109618 treedt op wanneer PHP halverwege het opzetten van een request geen geheugen meer heeft. Interne gegevens blijven half opgebouwd achter, en de opruimcode vertrouwt ze toch. Een speciaal gemaakte, te grote formulierinzending kan al genoeg zijn om het te activeren.
- CVE-2026-109619 is een bug met een "verouderde toestand". Informatie van het ene request blijft langer bestaan dan het geheugen waarnaar ze verwijst, en het volgende request in hetzelfde PHP-proces werkt met die restanten. Onderzoekers lieten zien dat het lek bereikbaar is via de upload-progress-functie van PHP, die standaard aanstaat en bij elke formulierinzending draait voordat de applicatie die ziet.
Beide hebben een score van 9,2 op 10 (kritiek). Elk van de twee kan een aanvaller eigen code laten uitvoeren met de rechten van de webserver. Van daaruit kan hij databases en configuratiebestanden lezen, achterdeurtjes plaatsen, spam versturen of de server gebruiken om anderen aan te vallen.
Waar het vandaan komt
De lekken werden gevonden door beveiligingsonderzoekers van Calif, OpenAI en Wiz en vertrouwelijk gemeld aan het beveiligingsteam van PHP. Bekendmaking stond gepland op 22 oktober. Op 20 oktober lekten screenshots, video's en gedeeltelijke details van een tool genaamd "PHP2Shell" uit, waarop PHP de noodrelease vervroegde naar 21 oktober om 14.00 uur UTC.
Het kwetsbare gedrag is oud. Volgens een analyse van Abstract Security gaat de betrokken code terug tot PHP 5.4, uitgebracht in 2012, en zit dus al meer dan tien jaar in PHP. Dat is gebruikelijk bij ernstige bugs in veelgebruikte software: code die bij normaal gebruik goed werkt, kan jarenlang een randgeval verbergen, totdat iemand er met de blik van een aanvaller naar kijkt.
Wat er nu gebeurt
- Actief misbruik: beveiligingsbedrijf watchTowr zag op 21 oktober, de dag van de fix, misbruikpogingen tegen zijn honeypotnetwerk.
- Omvang: VirusTotal schat dat meer dan 5,1 miljoen PHP-servers bereikbaar zijn vanaf internet.
- Officiële waarschuwingen: het Britse National Cyber Security Centre riep Britse organisaties op PHP onmiddellijk bij te werken, of systemen offline te halen tot ze gepatcht zijn.
- Tijdelijke schilden: Cloudflare zette firewallregels voor webapplicaties in tegen de bekende aanvalsmethoden en meldde de eerste aanvallen te zien. Het noemde de regels tijdelijk, geen vervanging voor patchen.
- Betwiste volledigheid: één onderzoeksteam, Abstract Security, zegt een verwante aanval te hebben nagebootst op een volledig gepatchte server door dezelfde upload-progress-functie te misbruiken. Het PHP-project heeft dit niet bevestigd, maar het is nog een reden om naast de update ook de onderstaande hardening-stappen te nemen.
Wie getroffen is
Elke PHP-installatie die webpagina's serveert valt eronder, hoe PHP ook draait: PHP-FPM, Apache met mod_php, php-cgi, LiteSpeed of FrankenPHP. Het PHP-team ziet Apache met mod_php als het grootste risico, omdat een aanval daar kan slagen voordat er applicatiecode draait.
De gepatchte versies zijn:
| PHP-tak | Kwetsbaar | Opgelost in |
|---|---|---|
| 8.5 | lager dan 8.5.12 | 8.5.12 |
| 8.4 | lager dan 8.4.27 | 8.4.27 |
| 8.3 | lager dan 8.3.36 | 8.3.36 |
| 8.2 | lager dan 8.2.35 | 8.2.35 |
| 8.1, 8.0, 7.4 | alle versies | geen standaardrelease; alleen backports van leveranciers of uit de broncode |
| 7.3 en ouder | alle versies | geen fix: upgrade naar een ondersteunde versie |
In de praktijk betekent dit:
- WordPress, Joomla, Drupal, Magento en de meeste websites van kleine bedrijven draaien op PHP. Uw site is maar zo veilig als de PHP-versie eronder.
- Klanten met shared hosting zijn afhankelijk van hun hostingprovider om PHP bij te werken. Veel providers patchen automatisch, maar sommige bieden nog oude PHP-versies aan die geen fixes meer krijgen.
- Oude servers en vergeten sites vormen het grootste risico: een testsite, een oude campagnepagina of een stagingkopie met PHP 7 wordt door geen enkele update opgelost.
- Appliances en controlepanelen hebben soms een eigen kopie van PHP aan boord, die uw gewone updates niet raken.
Wat u nu meteen moet doen
- Zoek elke plek waar PHP draait. Websites, stagingkopieën, controlepanelen, interne tools en appliances. Begin met alles wat vanaf internet bereikbaar is.
- Werk bij naar een gepatchte versie uit de tabel hierboven, of installeer de gepatchte pakketten van uw Linux-distributie, die in veel gevallen al vóór de openbare aankondiging beschikbaar waren.
- Herstart alle PHP-processen na de update. Langlopende processen houden de kwetsbare code in het geheugen tot ze opnieuw starten.
- Heeft u shared hosting, controleer dan uw PHP-versie in het controlepaneel. Stap over op een ondersteunde versie (8.2 of nieuwer) en vraag uw provider schriftelijk te bevestigen dat de PHP2Shell-fixes zijn toegepast.
- Kunt u vandaag niet bijwerken, beperk dan de toegang tot de server, schakel
session.upload_progress.enableduit in uw PHP-instellingen en herstart, en houd de maximale uploadgrootte zo klein als uw site toelaat. Het PHP-team is duidelijk: geen enkele instelling beschermt volledig, dus zie dit als noodmaatregelen. - Zoek naar tekenen van compromittering vanaf 20 oktober, niet alleen vanaf de dag dat u patchte. Waarschuwingssignalen zijn onder meer PHP-fouten met "tried to allocate" en "in Unknown on line 0", golven van zeer grote formulierinzendingen, onbekende PHP-bestanden in uw websitemappen, nieuwe beheerders, gewijzigde cronjobs of SSH-sleutels, en een webserver die onverwachte uitgaande verbindingen maakt.
Zo wapent u zich tegen de volgende
PHP2Shell zal niet het laatste kritieke lek zijn in software waar het web op draait. Deze gewoonten beperken de schade de volgende keer:
- Blijf op ondersteunde versies. Software die end-of-life is, krijgt helemaal geen fixes meer. Zet upgradedata in de agenda voordat de ondersteuning stopt.
- Kies hosting die snel patcht, en vraag hoe lang het meestal duurt voordat kritieke PHP-updates op uw account staan.
- Zet een firewall voor webapplicaties vóór uw site. Diensten zoals Cloudflare en andere CDN's kunnen binnen enkele uren virtuele patches uitrollen, wat tijd oplevert terwijl u bijwerkt.
- Verwijder wat u niet gebruikt. Oude sites, ongebruikte plug-ins en uploadfuncties die u niet nodig hebt, zijn allemaal extra deuren.
- Beperk de schade. Laat elke site onder een eigen account draaien, geef databasegebruikers alleen de rechten die ze nodig hebben en bewaar geheimen buiten de websitemap.
- Monitor en maak back-ups. Bewaking van bestandswijzigingen, logbestanden buiten de server en geteste offline back-ups maken van een ramp een ongemak.
- Heb een plan. Leg vooraf vast wie beveiligingsadviezen volgt, wie noodupdates uitvoert en wie u belt als er al iets mis is gegaan.
Hulp nodig?
Weet u niet zeker welke PHP-versie uw sites gebruiken, of wilt u een onafhankelijke controle op tekenen van compromittering, dan kan ons team helpen. We kunnen uw blootstelling beoordelen, controleren of de fixes zijn toegepast en verdachte activiteit volgens forensische normen onderzoeken. Neem contact op of bel onze 24/7-lijn op +44 7520 644325.
