Vrijdag 30 oktober 2026
SlimmeKrant
Technologie

Twee kritieke PHP-lekken halen DigiD en MijnOverheid uit de lucht, en de patch sluit niet alles af

Het NCSC waarschuwde woensdag voor twee kwetsbaarheden in PHP, waarmee een aanvaller zonder inloggegevens code kan uitvoeren op een webserver. Honderden Nederlandse organisaties haalden hun site uit voorzorg offline, waaronder DigiD, MijnOverheid, de Tweede Kamer en het NCSC zelf. De patch kwam diezelfde middag om vier uur, maar beveiligingsonderzoekers waarschuwen dat een update een eerdere inbraak niet ongedaan maakt. Cloudflare zag die ochtend al de eerste aanvalspogingen voorbijkomen.

Twee kritieke PHP-lekken halen DigiD en MijnOverheid uit de lucht, en de patch sluit niet alles af

Twee lekken in de motor van het web

Het Nationaal Cyber Security Centrum waarschuwde woensdag 21 oktober voor twee kwetsbaarheden in PHP, de programmeertaal waarmee een groot deel van alle websites draait. Beide kregen een ernstscore van 9,2 op een schaal van tien, en volgens het NCSC was er een zeer hoog risico op volledige overname van systemen.

De lekken staan geregistreerd als CVE-2026-109618 en CVE-2026-109619 en kregen van onderzoekers de naam php2shell. Ze zitten niet in een bepaald pakket of een bepaald thema, maar in de PHP-motor zelf. Een webwinkel of redactiesysteem met volledig schone eigen code is er daarmee net zo goed kwetsbaar voor.

Wat een aanvaller er precies mee kan

Beide kwetsbaarheden zijn zogeheten use-after-free-fouten. Daarbij blijft geheugen dat PHP al heeft vrijgegeven alsnog in gebruik, en wie dat geheugen op het juiste moment vult, kan de uitvoering overnemen.

De aanleiding is in beide gevallen een fatale fout tijdens een verzoek, meestal doordat dat verzoek over de ingestelde geheugenlimiet gaat. PHP breekt dan af voordat het zijn eigen opruimwerk heeft afgemaakt. Bij de eerste kwetsbaarheid loopt het mis in de code die de voortgang van een bestandsupload bijhoudt, bij de tweede in de code die bij een foutmelding de reeks aanroepen reconstrueert, waarbij ook de cache van gecompileerde scripts in de war raakt.

Een wachtwoord is niet nodig. De aanval loopt via multipart/form-data, het formaat dat browsers gebruiken om bestanden te versturen, en zulke verzoeken worden door de PHP-motor verwerkt voordat ook maar een regel van de eigen applicatie aan de beurt is.

Kwetsbare code uit 2012

De betrokken code dateert van PHP 5.4.0, dat in 2012 uitkwam. Daarmee is in principe elke webserver geraakt die PHP 5.4 of nieuwer draait, of dat nu via Apache met mod_php gaat, via PHP-FPM, via php-cgi, via FrankenPHP of via LiteSpeed.

Onderzoekers noemen mod_php het hoogste risico, omdat de aanval daar al slaagt voordat applicatiecode aan de beurt is. In hun eigen proeven lukte het onder meer bij Magento, WordPress, Drupal, Joomla, MediaWiki, Roundcube, phpMyAdmin, Nextcloud, Laravel en Symfony.

Nederland ging massaal op zwart

Omdat de patch pas later op de dag zou komen, adviseerde het NCSC organisaties een eigen risicoafweging te maken en hun site desnoods tijdelijk offline te halen. Dat gebeurde op grote schaal.

Bij de overheid verdwenen DigiD, MijnOverheid, Overheid.nl en de site van de Tweede Kamer uit de lucht, net als de website van het NCSC zelf. NotuBiz, waarmee ongeveer honderd gemeenten, provincies en waterschappen hun raadsstukken publiceren, trok eveneens de stekker eruit, en dertien van de 25 veiligheidsregio's volgden. Ook ziekenhuizen gingen offline, onder meer Maastricht UMC+ en het Jeroen Bosch Ziekenhuis, en in Belgie het UZA en UZ Leuven. Daarnaast waren sites van RTL Nieuws, DPG Media, Tweakers, Hoogvliet en Odido tijdelijk weg, net als meldpunten als Meld Misdaad Anoniem, het Centrum Seksueel Geweld en 113. Rijksoverheid.nl bleef in de lucht, omdat die site geen PHP gebruikt.

Van gecoordineerde melding naar uitgelekte details

De eerste melding kwam op 1 augustus van een beveiligingsonderzoeker. Tien dagen later begon een gecoordineerd traject met de PHP-ontwikkelaars, en op 24 augustus bleek dat ook andere onderzoekers op dezelfde problemen waren gestuit.

Dat traject liep stuk op 20 oktober, toen technische details openbaar uitlekten. De ochtend erna zag Cloudflare de eerste aanvalspogingen langskomen, en er circuleerde op dat moment al een werkende voorbeeldexploit. De patch volgde op 21 oktober om vier uur in de middag, met reparaties in de versies 8.5.12, 8.4.27, 8.3.36 en 8.2.35.

De patch sluit het lek, niet de deur die al open stond

Wie op tijd heeft bijgewerkt, is nog niet klaar. Een update dicht de kwetsbaarheid, maar draait een eerdere inbraak niet terug, en aanvallers die in dat venster binnen zijn geweest kunnen een achterdeur hebben achtergelaten om later terug te komen.

Cyberexperts waarschuwen daarom dat dit lek ook na het patchen nog maanden gevolgen heeft. Het NCSC wijst erop dat vergelijkbare kwetsbaarheden in het verleden nog lang na de update werden misbruikt, juist bij organisaties die het bijwerken als het eindpunt zagen.

Wat dit voor Nederland betekent

De route die deze storing nam, zegt iets over de afhankelijkheid die eronder zit. Een fout in een stuk opensourcecode uit 2012 kon in een ochtend de digitale toegangspoort van de Nederlandse overheid dichtzetten, inclusief de inlogvoorziening waarmee burgers bij hun eigen gegevens komen.

Dat sluit aan bij de rijksbrede risicoanalyse van eerder deze maand, waarin de afhankelijkheid van een handvol digitale leveranciers bovenaan de risicolijst stond. PHP wordt onderhouden door een stichting met een beperkt aantal ontwikkelaars, terwijl het Nederlandse digitale loket erop leunt. Premier Rob Jetten liet weten dat het kabinet de situatie nauwlettend volgt. Op Europees niveau riep CERT-EU organisaties op eerst in kaart te brengen welke toepassingen PHP gebruiken en ze desnoods van het netwerk af te halen.

Wat nog niet vaststaat

Hoeveel Nederlandse systemen daadwerkelijk zijn binnengedrongen, is onbekend. Het NCSC zag op het moment van de waarschuwing nog geen misbruik in Nederland, maar een aanval die alleen een achterdeur plaatst en verder niets doet, valt in de eerste dagen zelden op.

Ook is onduidelijk hoeveel servers nog niet zijn bijgewerkt. Voor PHP 7.4 tot en met 8.1 zijn alleen minimale reparaties in de broncode uitgebracht, en voor de versies van 5.4 tot 7.3 komt er niets meer omdat die niet langer worden ondersteund. Wie daarop draait, moet dus eerst een versiesprong maken voordat er iets te patchen valt.

Bronnen

Reacties

Nog geen reacties. Wees de eerste!

Laat een reactie achter

Reacties worden gemodereerd voor publicatie. Uw e-mailadres wordt niet gepubliceerd.