PHP2Shell: wat betekent de kritieke PHP-kwetsbaarheid voor jouw website?
· 7 min lezen
Stand van zaken: 21 oktober 2026, 16:30 uur. De patch is uit. PHP heeft de versies 8.5.12, 8.4.27, 8.3.36 en 8.2.35 uitgebracht en de technische details gepubliceerd. Draai je PHP? Installeer de update dan zo snel mogelijk. We hebben deze post bijgewerkt met wat PHP heeft bevestigd.
Sinds dinsdag 20 oktober waarschuwen beveiligingsonderzoekers voor PHP2Shell. Dat is de bijnaam van twee kritieke kwetsbaarheden in PHP zelf, CVE-2026-109618 en CVE-2026-109619. Ze werden bekend voordat er een patch was, en woensdagochtend zag Cloudflare de eerste aanvallen. Allerlei Nederlandse organisaties, waaronder DigiD, MijnOverheid, de Tweede Kamer en het NCSC, hebben hun website uit voorzorg offline gehaald.
Kort samengevat: PHP is de techniek achter een groot deel van het internet, waaronder WordPress en veel webshops. Aanvallers kunnen via deze kwetsbaarheden mogelijk een server overnemen. Sinds 21 oktober is er een beveiligingsupdate. Draait jouw website op PHP? Vraag je hostingpartij of webbouwer dan welke PHP-versie je gebruikt en of de update er al op staat.
Hieronder lees je hoe dit bekend werd, wat PHP2Shell is, wie er risico loopt, hoe aanvallers het misbruiken en wat je nu moet doen.
Hoe het bekend werd
Normaal gesproken worden zulke kwetsbaarheden pas bekendgemaakt als de patch klaar is. Dat ging hier mis.
- Oorspronkelijk plan: volgens securitybedrijf watchTowr zouden de details pas op donderdag 22 oktober naar buiten komen.
- Dinsdag 20 oktober: de CVE-nummers verschijnen in een inmiddels verwijderd bericht op Hacker News en gaan rond op sociale media. Er blijkt ook een schermafbeelding van een aanvalsprogramma met de naam PHP2Shell naar buiten te zijn gekomen. PHP kondigt dezelfde dag een spoedrelease aan.
- Woensdag 21 oktober, 09:43 uur: Cloudflare meldt de eerste aanvallen op PHP-sites en zet extra filterregels aan voor al zijn klanten, ook op het gratis plan.
- Woensdag 21 oktober, 15:34 uur: PHP publiceert de technische details en kort daarna de patch.
Het vervelende eraan: aanvallers wisten al dat er een kwetsbaarheid was en waar ze ongeveer moesten zoeken, terwijl beheerders nog niets hadden om te installeren. Nu is er wel een patch, maar daarmee zijn ook de technische details openbaar.
Wat is PHP2Shell?
PHP2Shell bestaat uit twee kwetsbaarheden in PHP die volgens CERT-EU en het NCSC kunnen leiden tot remote code execution: een aanvaller laat dan van buitenaf eigen code uitvoeren op een server die PHP draait. In het ergste geval betekent dat: de server overnemen.
PHP zelf geeft beide kwetsbaarheden een CVSS v4.0-score van 9,2 op een schaal van 10. PHP bevestigt inmiddels dat een aanvaller er niet eens voor hoeft in te loggen. Online gaat ook een score van 10,0 rond, maar die komt uit de eerste berichten van vóór de officiële aankondiging.
De kwetsbaarheden zitten niet in een plugin of een thema, maar in PHP zelf: het programma op de server dat PHP-code uitvoert. Dat maakt het anders dan de gemiddelde WordPress-melding. Je kunt niet één plugin uitzetten en klaar zijn.
Wat PHP nu bevestigt: beide fouten zitten in de manier waarop PHP met geheugen omgaat. Bij CVE-2026-109618 kan een aanvaller PHP midden in een verzoek door zijn geheugen heen laten raken. PHP stopt dan terwijl interne gegevens nog maar half zijn klaargezet, en behandelt die bij het opruimen alsof ze kloppen. Bij CVE-2026-109619 blijven gegevens van een verzoek achter terwijl het geheugen eronder al is vrijgegeven. Een volgend verzoek kan die oude gegevens dan gebruiken. De geruchten over formulieren en uploads klopten deels. Een aantal aanvalsroutes loopt via de manier waarop PHP uploads verwerkt.
PHP noemt in zijn advies wel een paar instellingen die bepaalde aanvalsroutes blokkeren, maar zegt er direct bij dat een server daarmee niet veilig is. Ook het NCSC noemt zulke aanpassingen onvoldoende. Alleen patchen lost het op.
Wie loopt er risico?
PHP draait onder ongeveer 69% van alle websites waarvan bekend is welke programmeertaal ze aan de serverkant gebruiken. Denk aan WordPress, WooCommerce, Magento, Shopware, Drupal, Joomla en Laravel. Heb je een website of webshop op een van die systemen, dan loop je mogelijk risico. Het NCSC is daar duidelijk over: elk systeem met PHP dat vanaf internet bereikbaar is, geldt als vermoedelijk kwetsbaar zolang het niet gepatcht is.
- Versies: volgens PHP zijn alle versies van vóór de patch kwetsbaar. CERT-EU en het NCSC gaan daarbij uit van alles vanaf PHP 5.
- Patches: die zijn er alleen voor de versies die PHP nog ondersteunt, 8.2 tot en met 8.5. Voor PHP 8.1 en ouder komt er geen officiële update. PHP 8.2 krijgt na 31 december 2026 ook geen beveiligingsupdates meer.
- Vergeten sites: de actiepagina van drie jaar geleden, of de oude versie van je website die nog ergens online staat. Daar kijkt niemand meer naar om, en juist die draaien vaak nog een oude PHP-versie.
Weet je niet waar je website op draait? Vraag het je webbouwer of hostingpartij. Dat is vandaag een prima vraag om te stellen.
Hoe aanvallers dit misbruiken
Volgens het NCSC is er al publieke aanvalscode, een zogeheten proof of concept. PHP bevestigt nu zelf dat er een werkende aanval bestaat. Actief misbruik had het NCSC woensdagmiddag nog niet gesignaleerd. Wacht daar niet op. Sansec verwacht massaal misbruik nu de patch en de technische uitleg openbaar zijn. Bij dit soort kwetsbaarheden gaat het meestal zo:
- Scannen. Aanvallers zoeken automatisch het hele internet af naar servers die PHP draaien. Beveiligingsonderzoeker Silas Cutler schat dat er ruim 1,3 miljoen mogelijk kwetsbaar zijn.
- Eén verzoek sturen. Volgens het NCSC is misbruik mogelijk met een eenvoudig POST-verzoek, het soort verzoek dat je browser ook verstuurt als je een formulier invult. Onderzoekers van Sansec wijzen erop dat PHP zo'n verzoek al verwerkt voordat de website zelf iets kan doen. Daarom helpt zelfs de onderhoudsmodus van je webshop niet. PHP heeft dat inmiddels bevestigd, in elk geval voor servers met Apache en mod_php. Daar is het risico volgens PHP het grootst.
- Code uitvoeren. Lukt de aanval, dan draait de code van de aanvaller met dezelfde rechten als je website.
- Blijven. Vaak volgt daarna een verborgen achterdeur, zodat de aanvaller ook na de patch nog binnen kan.
Wat aanvallers daarna doen, verschilt. Klantgegevens en wachtwoorden stelen, betaalpagina's van webshops aanpassen om creditcardgegevens af te vangen, spam of malware verspreiden vanaf jouw domein, of de server versleutelen en losgeld vragen.
Het principe: patchen sluit de deur, maar haalt geen achterdeur weg die er al zit.
Draai je PHP? Dit is wat je nu doet
- Patch nu. Update naar 8.5.12, 8.4.27, 8.3.36 of 8.2.35, afhankelijk van welke versie je draait. Regelt je hoster of webbouwer de updates? Vraag dan na of de patch er al op staat, en of je website echt op de nieuwe versie draait. Een server kan meerdere PHP-versies naast elkaar hebben.
- Op PHP 8.1 of ouder? Upgrade naar een ondersteunde versie, of vraag je hoster om een backport: een aangepaste patch voor jouw oude versie. Voor 7.4, 8.0 en 8.1 heeft PHP vanwege de ernst zelf een minimale backport gepubliceerd.
- Kun je nog niet patchen? Zet je site achter Cloudflare en laat op je server alleen verkeer van Cloudflare toe. Dat is een noodoplossing, geen fix. Kan dat niet, dan is de site tijdelijk offline halen de veiligste keuze. Dan wel echt offline: zet PHP uit en toon een statische pagina. De onderhoudsmodus van WordPress of Magento beschermt je niet.
- Laat daarna controleren op achterdeuren. Zeker als je site al die tijd gewoon online stond.
Software van bouwers.ai
Applicaties die bouwers.ai bouwt, draaien niet op PHP. We bouwen met JavaScript-frameworks als React en Next.js, met TypeScript en Python voor de achterkant. Waar geen PHP draait, valt deze kwetsbaarheid niet te misbruiken.
Voor het overgrote deel van onze klanten speelt deze kwetsbaarheid dus niet. Een klein aantal klanten en partners gebruikt wel PHP in een deel van hun systemen. Die hebben we inmiddels zelf op de hoogte gebracht, en waar nodig zijn er passende maatregelen genomen.
Zonder PHP ben je overigens niet onkwetsbaar. In december 2025 had React een vergelijkbaar ernstige kwetsbaarheid, React2Shell, in het onderdeel React Server Components. Dit keer is PHP aan de beurt. Twijfel je of iets bij jou geraakt is? Neem contact op, dan kijken we mee.
Bronnen
- NCSC: Ernstige kwetsbaarheden in PHP
- CERT-EU: Critical Vulnerabilities in PHP
- php.net: Security advisory: Critical remote code execution vulnerabilities, update now
- php.net: Upcoming Critical PHP Security Release
- Sansec: Critical PHP RCE, CVE-2026-109618 and CVE-2026-109619
- Tenable: php2shell FAQ
- watchTowr: PHP Remote Code Execution FAQ