Aanleiding: Hoe een zwakke plek in PHP het internet ontregelde
J. Konstapel, Leiden, 22-10-2026.
Op woensdag 21 oktober 2026 gingen in Nederland meer dan honderd websites op zwart. DigiD.nl, MijnOverheid, de Tweede Kamer, het NCSC, gemeenten, ziekenhuizen, hogescholen, de RET, RTL en voetbalclubs gingen uit de lucht. In Finland, Frankrijk en elders gebeurde hetzelfde.
De oorzaak waren twee kritieke lekken in PHP, de programmeertaal onder het grootste deel van het web. Het Financieele Dagblad publiceerde dezelfde avond een reconstructie: “Hoe een zwakke plek in PHP het internet ontregelde”.
Dat artikel is hier claim voor claim nagelopen. Het is grotendeels juist. Twee punten kloppen niet: de kop en het voorbeeld DigiD. Juist die twee bepalen hoe de lezer de dag onthoudt.
Wat klopt
De kern van de reconstructie staat overeind.
PHP is overal. Volgens W3Techs draait 69,3 procent van alle websites met een bekende servertaal op PHP. WordPress draait erop. Het beveiligingsbedrijf Huntress schreef dat PHP ook zit in software die dat niet vermeldt.
De lekken waren ernstig. Beide kregen een score van 9,2 op 10. Een aanvaller kon zonder in te loggen eigen code uitvoeren op de server. Dat geeft toegang tot de website, de data en soms tot de rest van het netwerk.
Het tijdpad klopt in hoofdlijnen. De fix lag klaar en stond onder embargo tot donderdag 22 oktober. Op dinsdag lekte de informatie uit via Hacker News. PHP haalde de update daarna naar voren, naar woensdag 16.00 uur. CERT-EU waarschuwde dinsdagavond om de update voor te bereiden.
Ook de herkomst van het lek klopt in grote lijnen. Het werd in augustus gevonden met kunstmatige intelligentie. Wiz en OpenAI vonden het daarna onafhankelijk opnieuw.
Patchstack en Cloudflare zagen woensdagochtend aanvalsverkeer. De PHP Foundation draait mee op geld van onder meer Automattic, het bedrijf achter WordPress.com. Erik de Jong is chief research officer bij Tesorion. De RET haalde zijn site uit voorzorg offline.
Dat is degelijk werk, geschreven binnen een paar uur.
Wat niet klopt: de kop
De kop zegt dat de zwakke plek het internet ontregelde. De lead zegt dat de lekken woensdag tot cyberaanvallen leidden. Voor Nederland is dat onjuist.
Het NCSC meldde om 13.13 uur dat het nog geen actief misbruik had gezien. Om 15.07 uur zei een woordvoerder van het NCSC: “Het is niet zozeer een aanval, maar een weeffout die in de software zit.” Minister Van Weel zei om 16.21 uur: “Er zijn op dit moment gelukkig nog geen signalen dat de kwetsbaarheden actief misbruikt worden.” De Rijksoverheid schreef hetzelfde.
Wereldwijd waren er wel aanvalspogingen, vooral op WordPress-sites. Volgens watchTowr was op woensdag nog nergens een geslaagde inbraak bevestigd.
Wat het internet ontregelde, was dus niet de aanval. Het was de voorzorg. Organisaties trokken zelf de stekker eruit, omdat ze niet zeker wisten of hun systemen kwetsbaar waren.
Dat verschil is geen detail. “Aanvallen legden het internet plat” beschrijft hackers die winnen. “Organisaties legden zichzelf plat” beschrijft beheerders die niet weten wat er op hun eigen servers draait. Voor die twee situaties zijn verschillende maatregelen nodig.
Wat niet klopt: DigiD
Het artikel leidt uit het aantal offline gehaalde sites af dat PHP overal zit, “van DigiD tot de website van FC Twente”. Dat klopt voor FC Twente. Voor DigiD niet.
Alleen de informatiesite digid.nl ging offline. Inloggen met DigiD bleef de hele dag werken. UWV bevestigde dat om 15.31 uur. Het NOS-liveblog meldde om 18.11 uur dat inloggen op andere websites gewoon mogelijk was.
De inlogdienst zelf draait niet op PHP. De broncode van DigiD is in 2023 openbaar gemaakt na een Woo-verzoek. Ze bestaat uit Java (50,2 procent), Ruby (32,5 procent) en Haml (11 procent). PHP komt er niet in voor. DigiD draait sinds jaren op Ruby on Rails. Dat bleek in januari 2013, toen een lek in dat framework DigiD een dag uit de lucht haalde.
De Rijksoverheid schreef woensdag zelf dat een groot deel van haar websites geen PHP gebruikt. Toch ging de informatiesite van DigiD uit de lucht. Offline halen uit voorzorg zegt dus niets over welke taal een site gebruikt. Het zegt alleen dat de beheerder het zekere voor het onzekere nam.
DigiD als voorbeeld van “PHP is overal” werkt dus omgekeerd. Het laat zien hoe ver de voorzorg reikte, niet hoe ver PHP reikt.
Kleinere correcties
- Japan en het VK adviseerden niet om sites offline te halen. Hun advies was om meteen te patchen. Alleen als dat niet direct lukte, was offline halen of afschermen het alternatief. CERT-EU en het Nederlandse NCSC adviseerden hetzelfde.
- Finland haalde niet “zijn websites” offline. De overheidsdienstverlener Valtori haalde vanaf woensdagmiddag een deel van de staatsdiensten uit de lucht.
- “Dinsdagavond” is niet precies. De Hacker News-post verscheen dinsdag om 17.20 uur Nederlandse tijd. De vooraankondiging van PHP en het advies van CERT-EU volgden ‘s avonds.
- ChatGPT is niet het juiste instrument. Het bedrijf Calif gebruikte het OpenAI-model GPT-5.6 Sol.
- De verwijderde post staat nog online. Het Hacker News-bericht was woensdag nog zichtbaar en is niet als verwijderd gemarkeerd. De verwijdering was hooguit tijdelijk.
- De score van 9,2 komt uit CVSS versie 4.0. De gelekte post noemde nog 10,0.
- “16.00 uur” was de geplande tijd. De update verscheen om 15.43 uur.
- Patchstack schreef niet letterlijk “Attacks are already under way”. Het meldde om 9.34 uur Nederlandse tijd dat er meerdere actieve misbruikincidenten waren bevestigd. De strekking klopt, het citaat niet.
- Wikipedia werd niet alleen “in het begin” met PHP gebouwd. Het draait er nog steeds op. Facebook stapte over op Hack, een taal die van PHP is afgeleid.
- De PHP Foundation is geen externe donor. Ze betaalt kernontwikkelaars die binnen het gemeenschapsproces aan PHP werken. Drie van de vier bouwers van deze fixes worden door de Foundation betaald.
- PHP werd in 1994 gemaakt en in juni 1995 publiek uitgebracht. Lerdorf is Deens-Canadees, geboren in Qeqertarsuaq, Groenland.
Wat de dag liet zien
Voor mensen betekende woensdag vooral dat er iets niet kon. MijnOverheid was onbereikbaar. Bij UWV kon je je online niet ziek of beter melden. Raadsinformatie van ongeveer honderd gemeenten was weg. Ziekenhuizen en vervoerders gingen op zwart. Niemand was gehackt, en toch stond een deel van het dagelijks leven een middag stil.
De oorzaak daarvan ligt niet bij PHP alleen. Ze ligt in drie dingen die tegelijk gebeurden.
Het lek werd gevonden door AI, en snel. Calif, Wiz en OpenAI vonden dezelfde fout onafhankelijk van elkaar, in enkele weken. Wat drie partijen vinden, vindt een vierde ook. Erik de Jong zei in het FD: “De tijd tussen het bekend worden van een kwetsbaarheid en misbruik wordt al jaren kleiner en gaat onder invloed van AI nog sneller.”
Het embargo hield geen stand. Een fix die twee dagen onder embargo ligt, is twee dagen een geheim dat al bekend is. Dat geheim lekte uit. Daarna moest de wereld in een halve dag doen waarvoor drie dagen gepland stond.
Veel organisaties weten niet precies wat er op hun servers draait. Huntress wees er al op: PHP zit ook in software die dat niet vermeldt. Wie dat niet weet, kan maar één ding doen: alles uitzetten. Dat is verstandig als noodmaatregel. Als vaste werkwijze is het duur.
De kop van het FD wijst naar hackers. De feiten wijzen naar een ander punt: wie zijn eigen systemen kent, kon woensdag gewoon blijven draaien. Wie dat niet wist, moest zijn site offline halen.
Hoe deze toets is gedaan
Het artikel is opgedeeld in 29 controleerbare beweringen. Twee onderzoekers werkten los van elkaar. De eerste legde vooraf vast wat hij verwachtte en controleerde daarna de bronnen. De tweede koos zelf zijn bronnen en zag het werk van de eerste niet. Ze kwamen op 21 van de 29 punten tot hetzelfde oordeel. De verschillen gingen alleen over de zwaarte van een correctie. De kernpunten zijn een derde keer nagelopen in het NOS-liveblog.
De uitkomst: 14 beweringen juist, 13 juist met een correctie, 1 onjuist (de kop) en 1 niet te toetsen. Die laatste is de zin dat veel websites zijn overgestapt op modernere technologie. Gezien het aandeel van PHP van 69 procent is die bewering in elk geval zwak.
Referenties
Overstegen, R. (2026). “Hoe een zwakke plek in PHP het internet ontregelde.” Het Financieele Dagblad, 21 oktober 2026. https://fd.nl/tech-en-innovatie/1616233/hoe-een-zwakke-plek-in-php-het-internet-ontregelde Waarom lezen? Dit is het getoetste artikel. Het geeft een snelle en grotendeels juiste reconstructie van het tijdpad. Leesadvies: lees het naast het NOS-liveblog, dan zie je waar de kop afwijkt van de feiten.
NOS (2026). Liveblog: “MijnOverheid en DigiD weer online – wereldwijd oproepen om beveiligingsupdate te installeren.” 21 oktober 2026. https://nos.nl/liveblog/2636066-mijnoverheid-en-digid-weer-online-wereldwijd-oproepen-om-beveiligingsupdate-te-installeren Waarom lezen? Dit is de beste tijdlijn van de Nederlandse kant. Het liveblog bevat de uitspraken van het NCSC (13.13 en 15.07 uur) en minister Van Weel (16.21 uur), de mededeling van UWV over DigiD (15.31 uur) en het tijdstip van de update (15.43 uur). Leesadvies: lees van onder naar boven.
Rijksoverheid (2026). “Aantal websites Rijksoverheid preventief offline na kwetsbaarheden PHP.” 21 oktober 2026. https://www.rijksoverheid.nl/actueel/nieuws/2026/10/21/aantal-websites-rijksoverheid-preventief-offline-na-kwetsbaarheden-php Waarom lezen? Dit is de officiële bevestiging dat het om voorzorg ging, dat er geen signalen van misbruik waren en dat een groot deel van de Rijksoverheidssites geen PHP gebruikt.
NCSC-NL (2026). “php2shell” – advies op GitHub. Bijgewerkt op 21 oktober 2026 om 16.00 uur. https://github.com/NCSC-NL/php2shell/blob/main/README.md Waarom lezen? Hier staat wat beheerders concreet moesten doen: welke versies veilig zijn, welke tijdelijke maatregelen er waren en waarom gebundelde PHP-kopieën apart gecontroleerd moeten worden. Leesadvies: voor beheerders verplicht, voor anderen een goed beeld van hoe diep PHP in systemen zit.
PHP Group (2026). Security advisories GHSA-w8hw-w9fx-j79w en GHSA-6wmf-4rv5-p3rp; nieuwsarchief php.net. https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w · https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp · https://www.php.net/archive/2026.php Waarom lezen? Dit is de primaire bron voor de CVSS-score (9,2, versie 4.0), het soort lek en wie het heeft gevonden. Leesadvies: de sectie “Credits” laat zien hoeveel partijen hetzelfde lek vonden.
CERT-EU (2026). Security Advisory 2026-018. 20 oktober 2026. https://cert.europa.eu/publications/security-advisories/2026-018/ Waarom lezen? Dit is de Europese waarschuwing van dinsdagavond. Ze laat zien dat het advies was om te patchen, en pas daarna om af te schermen.
Huntress (2026). “PHP2Shell: leaked critical PHP vulnerabilities.” https://www.huntress.com/blog/php2shell-leaked-critical-php-vulnerabilities Waarom lezen? De herkomst van het citaat “PHP is overal” en een heldere reconstructie van het lek vóór het embargo. Leesadvies: let op de passage over software die niet vermeldt dat ze PHP gebruikt.
Cloudflare (2026). “PHP vulnerabilities: WAF protection.” https://blog.cloudflare.com/php-vulnerabilities-waf-protection/ Waarom lezen? Een van de weinige bronnen met waarnemingen van echt aanvalsverkeer. Het laat ook zien hoe een netwerkfilter tijd kan winnen tot de patch er is.
Patchstack (2026). “PHP major vulnerability alert, October 2026.” https://patchstack.com/articles/php-major-vulnerability-alert-10-2026/ Waarom lezen? Hier staan de vroege meldingen van misbruik in de WordPress-wereld, met tijdstempels. Leesadvies: vergelijk de formulering met het citaat in het FD.
Wiz (2026). “PHP2Shell: PHP RCE.” https://www.wiz.io/blog/php2shell-php-rce Waarom lezen? Een technische uitleg van de fout door een van de vinders, met de eigen tijdlijn (gevonden op 19 augustus, gemeld op 24 augustus).
Decrypt (2026). “Who found the PHP bug that made governments unplug their websites.” https://decrypt.co/381567/who-found-php-bug-governments-unplug-websites-chatgpt Waarom lezen? Hoe Calif, Wiz en OpenAI onafhankelijk hetzelfde lek vonden, en de rol van AI daarbij. Het stuk corrigeert het beeld dat ChatGPT de ontdekker was.
NCSC (VK) (2026). “Critical security issue affecting PHP.” https://www.ncsc.gov.uk/news/critical-security-issue-affecting-php Waarom lezen? Het Britse advies laat zien dat de hoofdlijn patchen was, met offline halen alleen als terugvaloptie.
Yle (2026). Valtori sluit overheidsdiensten uit voorzorg af. https://yle.fi/a/74-20252571 Waarom lezen? De Finse kant: welke diensten offline gingen en vanaf wanneer.
Logius / Ministerie van BZK (2023). Openbaar gemaakte broncode DigiD. https://code.overheid.nl/MinBZK/woo-besluit-broncode-digid Waarom lezen? Hier is na te gaan waarop DigiD draait: Java, Ruby en Haml, zonder PHP. Leesadvies: de taalverdeling staat bovenaan de pagina.
Minister van BZK (2013). Kamerbrief 26 643, nr. 267, over de Ruby on Rails-calamiteit bij DigiD. https://zoek.officielebekendmakingen.nl/kst-26643-267.pdf Waarom lezen? Het eerdere moment waarop een framework-lek DigiD uit de lucht haalde. Het laat zien dat Logius toen dezelfde voorzorg toepaste.
W3Techs (2026). “Usage statistics of server-side programming languages for websites.” https://w3techs.com/technologies/overview/programming_language Waarom lezen? De bron voor het aandeel van 69,3 procent. Zo kun je zelf nagaan of “veel sites zijn overgestapt” klopt.
MediaWiki. “Manual: Installation requirements.” https://www.mediawiki.org/wiki/Manual:Installation_requirements Waarom lezen? Een korte bevestiging dat Wikipedia nog steeds PHP nodig heeft.
PHP Group. “History of PHP.” https://www.php.net/manual/en/history.php Waarom lezen? De oorsprong van Personal Home Page Tools en het verschil tussen 1994 (gemaakt) en 1995 (uitgebracht).
