PHP2Shell is de bijnaam van twee kritieke kwetsbaarheden in PHP zelf waarmee een aanvaller code op afstand kan uitvoeren, met de codes CVE-2026-109618 en CVE-2026-109619. Draai je PHP ergens op het openbare internet, ga er dan vandaag van uit dat je kwetsbaar bent.
Sinds gisteremiddag staat onze telefoon roodgloeiend. Klanten, partners en mensen die we jaren niet gesproken hebben, stellen allemaal dezelfde vraag: zijn wij geraakt?
Vanochtend hebben we al onze klanten geadviseerd om applicaties op een kwetsbare PHP-versie uit te zetten totdat de patch is geïnstalleerd en gecontroleerd. Dat advies doet pijn, dat weten we. Een website die een paar uur offline is, kost geld. Een server die een aanvaller overneemt, kost veel meer: je data, het vertrouwen van je klanten en weken opruimwerk.
Hieronder leggen we uit wat er speelt, wie het raakt (meer mensen dan je denkt) en wat je de komende uren moet doen.
Wat is PHP2Shell?
De twee kwetsbaarheden lekten uit voordat er een patch was. Het PHP-securityteam geeft beide een 9,2 op CVSS v4.0. In sommige eerste berichten stond een score van 10,0, maar Patchstack bevestigt dat 9,2 de officiële beoordeling is.
De bekendmaking zou onder embargo plaatsvinden. Op 20 oktober onthulde een bericht op Hacker News dat de twee kwetsbaarheden bestaan, waarna beveiligingsbedrijf watchTowr bevestigde dat ze echt zijn en CVE-2026-109618 reproduceerde (Huntress).
Volgens DutchNews via Ground News heeft een aanvaller geen login nodig om ze te misbruiken. Ethisch hacker Inti De Ceukelaire vertelde aan Belga dat de zwakte zit in hoe PHP bestanden verwerkt die naar een website worden gestuurd, ook op sites zonder uploadformulier. Veel standaardinstallaties zijn dus kwetsbaar (Brussels Times).
Welke PHP-versies zijn getroffen? PHP heeft beloofd de getroffen en opgeloste versies samen met de patch te publiceren. CERT-EU en het Australische Cyber Security Centre waarschuwen dat elke versie vanaf PHP 5 getroffen kan zijn.
De aanvallen zijn al begonnen. Cloudflare meldt vroeg aanvalsverkeer en heeft WAF-regels uitgerold, en Patchstack heeft van meerdere hostingpartners meldingen van actief misbruik ontvangen.
Tijdlijn van het PHP2Shell-lek
Alle tijden zijn zoals gemeld, gebaseerd op Sansec.
| Tijd | Wat er gebeurde |
|---|---|
| 21 okt, 16:00 CEST | Geplande PHP-securityrelease |
| 21 okt, 10:35 | Tweakers, Tweede Kamer, NCSC en Security.NL gaan offline |
| 21 okt, 08:48 | De PHP Foundation waarschuwt dat de pakketrepository van Remi vandaag geen updates uitbrengt |
| 21 okt, 07:43 | Cloudflare meldt vroege aanvallen en rolt WAF-regels uit |
| 21 okt, 02:13 | Een PHP-kernontwikkelaar stelt dat patchen de enige mitigatie is |
| 20 okt | PHP kondigt een kritieke securityrelease aan en watchTowr bevestigt het lek |
| 20 okt, 15:20 | Een Hacker News-bericht onthult twee aanstaande PHP RCE-bekendmakingen |
Is de PHP-patch al beschikbaar?
Check de officiële status op php.net: “Upcoming Critical PHP Security Release”.
Op het moment van schrijven heeft PHP de securityrelease gepland voor woensdag 21 oktober 2026 om 14:00 UTC, dat is 16:00 uur in Nederland. Het PHP-team zegt eerder te kunnen releasen als details openbaar worden of misbruik in het wild opduikt. De volledige details, getroffen versies en opgeloste versies verschijnen bij de release.
Twee praktische waarschuwingen voor als de patch er is:
- Je besturingssysteempakketten, Docker-basisimages en hosting-controlepanelen lopen achter op php.net, soms enkele uren. De PHP Foundation waarschuwde al dat de repository van Remi, die veel Red Hat-, AlmaLinux- en Rocky Linux-servers gebruiken, vandaag geen updates publiceert.
- WordPress, Laravel of je plugins updaten lost dit niet op. Wordfence wijst erop dat automatische WordPress-updates de fix niet toepassen, omdat PHP onder de applicatie draait. Zoek uit wie verantwoordelijk is voor de PHP-versie op elke server (Reuters via MarketScreener).
Elk PHP-framework en elk CMS valt eronder
De kwetsbaarheden zitten in de PHP-interpreter, dus elke applicatie op een kwetsbare PHP-versie erft ze. Je code kan perfect zijn en je plugins helemaal bij, en toch ben je kwetsbaar. PHP, of software die erop gebouwd is, draait volgens het Nederlandse NCSC op zo’n 70 procent van alle websites (NL Times).
Dat omvat WordPress en WooCommerce met alle plugins en thema’s. Het omvat applicaties gebouwd met Laravel, Symfony, CodeIgniter, CakePHP en Yii. Het omvat CMS-platformen zoals Drupal, Joomla, TYPO3 en Craft CMS, en webshops op Magento, Shopware of PrestaShop. En het omvat elke maatwerk PHP-applicatie, API en klantenportaal die je organisatie ooit liet bouwen.
Heeft een ontwikkelaar jaren geleden “een klein PHP-scriptje” gebouwd voor je contactformulier of een prijscalculator? Dan telt dat scriptje ook mee.
Geen eigen PHP-applicatie? Je kunt toch geraakt worden
Dit is het telefoontje dat we vandaag het vaakst voeren. Veel organisaties zeggen dat ze geen PHP hebben, omdat ze er nooit een website in lieten bouwen. Dan kijken we naar de tools die het bedrijf draaiende houden, en PHP duikt overal op.
Je webmail is een goed voorbeeld. Leest je team e-mail via Roundcube, dan draait die webmail op PHP en staat hij bewust op het internet. Hetzelfde geldt voor Nextcloud, waar je gedeelde bestanden en agenda’s staan.
Andere veelvoorkomende kandidaten zijn phpMyAdmin, Moodle, Matomo, MediaWiki, GLPI, osTicket, Mautic en SuiteCRM. Intranetten, boekingssystemen, ticketdesks en leveranciersportalen die iemand jaren geleden opzette, draaien vaak ook op PHP.
Beoordeel dus ook de ondersteunende tools, inclusief de tools die een leverancier of hostingpartij voor je beheert. De Universiteit van Wenen haalde bijvoorbeeld mogelijk blootgestelde systemen van het netwerk, en daar viel ook webmail onder (Pasquale Pillitteri). Inti De Ceukelaire waarschuwde ook dat het risico verder reikt dan sites die in PHP geschreven zijn, en haalde voor het eerst ooit zijn eigen persoonlijke websites offline (Brussels Times).
Ook overheden halen systemen offline
Als uitzetten extreem voelt, kijk dan wat overheden vandaag deden. CERT-EU, het cybersecurityteam van de EU zelf, zei tegen organisaties die niet kunnen patchen om getroffen websites offline te halen. Cybersecurity-instanties in Europa, Australië, Japan en het Verenigd Koninkrijk gaven hetzelfde advies: update direct of ga offline totdat het kan.
| Land | Wat ging offline | Bron |
|---|---|---|
| Nederland | De website van de Tweede Kamer, de website van het NCSC zelf en veel andere landelijke en lokale overheidssites | NL Times |
| Nederland | DigiD en MijnOverheid, samen met onderwijssites | DutchNews via Ground News |
| Finland | Alle publieke webdiensten van de overheid die Valtori, het staats-ICT-centrum, beheert, inclusief het Kadaster | Yle |
| België | Schoolplatform Smartschool, AZ Monica in Antwerpen en meerdere mediasites | Brussels Times |
| Europa en daarbuiten | Overheidswebsites in meerdere landen | Reuters via MarketScreener, Bloomberg |
Het Nederlandse NCSC zei het zonder omwegen: totdat PHP updates uitbrengt, is elk systeem met PHP dat vanaf het openbare internet bereikbaar is waarschijnlijk kwetsbaar. Als de organisatie die de waarschuwingen uitgeeft haar eigen website offline haalt, weet je dat het risico echt is.
Wat je de komende uren aan PHP2Shell moet doen
- Maak een lijst van elk systeem dat PHP draait, inclusief webmail, bestandsdeling, intranettools en alles wat je hostingpartij of leveranciers voor je beheren.
- Haal publiek bereikbare PHP-applicaties offline, of zet ze achter een VPN of IP-allowlist, totdat ze gepatcht zijn.
- Zet WAF-bescherming aan (Cloudflare, de firewall van je host of een ModSecurity-regelset) waar je echt niet offline kunt, en zie het als noodoplossing totdat je patcht.
- Installeer de PHP-update zodra die je platform bereikt, en controleer de nieuwe versie met
php -vof een phpinfo-check op elke server en container. - Controleer na het patchen op tekenen van een inbraak: onbekende PHP-bestanden in webmappen, nieuwe adminaccounts, gewijzigde cronjobs en ongebruikelijk uitgaand verkeer sinds 20 oktober.
- Vraag elke leverancier en hostingpartij om schriftelijke bevestiging dat ze de PHP achter je diensten hebben gepatcht, en noteer datum en versie.
- Wijzig wachtwoorden, API-sleutels en databasegegevens op elk systeem waar je iets verdachts vindt.
Weet je niet waar je moet beginnen, of heb je geen idee welke van je tools op PHP draaien? Bel ons. Ja, de telefoon gloeit, en we nemen toch op.
Wil je weten hoe wij met PHP-teams werken? Bekijk onze pagina’s over een PHP developer inhuren en een Laravel developer inhuren, of neem direct contact op.
Bronnen
- PHP: Upcoming Critical PHP Security Release
- Huntress: php2shell, leaked critical PHP vulnerabilities
- Patchstack: PHP vulnerable to critical RCE, attacks ongoing
- Sansec: Critical PHP RCE, CVE-2026-109618 and CVE-2026-109619
- Reuters via MarketScreener: Government websites go dark
- Bloomberg: Governments take websites offline after PHP security warnings
- NL Times: Dutch parliament website taken offline
- Yle: Finland temporarily shuts down government websites
- Brussels Times: Major websites go offline
- DutchNews via Ground News: Government websites taken offline
- Pasquale Pillitteri: Netherlands and Finland switch off government sites
Veelgestelde vragen
Wat is PHP2Shell?
PHP2Shell is de bijnaam van twee kritieke kwetsbaarheden in PHP zelf waarmee code op afstand kan worden uitgevoerd, met de codes CVE-2026-109618 en CVE-2026-109619. Het PHP-securityteam beoordeelt beide met een 9,2 op CVSS v4.0.
Wat is een remote code execution (RCE) kwetsbaarheid?
Met een remote code execution kwetsbaarheid kan een aanvaller op afstand zijn eigen code op een server uitvoeren. Afhankelijk van het lek kan dat zonder login, waardoor de aanvaller controle krijgt over de applicatie en de data op de server.
Lost het updaten van WordPress of Laravel PHP2Shell op?
Nee. De kwetsbaarheden zitten in de PHP-interpreter, die onder WordPress, Laravel en elke andere PHP-applicatie draait. Alleen een bijgewerkte PHP-versie lost ze op, dus de applicatie of plugins updaten is niet genoeg.
Hoe controleer ik welke PHP-versie een server draait?
Voer php -v uit op de server, of maak een phpinfo-pagina en lees de versie bovenaan. Controleer elke server en container apart, want de webserver kan een andere PHP-versie draaien dan de opdrachtregel.
Wat is een WAF en beschermt die tegen PHP2Shell?
Een WAF (web application firewall) filtert kwaadaardige verzoeken voordat ze je applicatie bereiken. Als noodoplossing kan hij het risico verkleinen, bijvoorbeeld met de regels die Cloudflare uitrolde, maar hij vervangt de PHP-patch niet.
Hoe weet ik of mijn server is gehackt?
Zoek naar onbekende PHP-bestanden in webmappen, nieuwe adminaccounts, gewijzigde cronjobs en ongebruikelijk uitgaand verkeer. Vind je iets verdachts, wijzig dan wachtwoorden, API-sleutels en databasegegevens op dat systeem.
