Op dinsdag 20 oktober kondigde het PHP-team een noodrelease aan voor twee kritieke kwetsbaarheden. Normaal blijven de details van zo’n lek geheim tot de fix er is, maar dit keer lekten ze een dag eerder uit. Op dezelfde dag dook een screenshot op van een aanvalstool met de naam PHP2Shell, die volgens de eigen banner werkt op elke PHP-versie vanaf 5.4.0. Beveiligingsbedrijf watchTowr wist een van de twee lekken na te bootsen en bevestigde dat ze echt zijn.
Woensdagochtend gingen in Nederland de eerste grote sites uit voorzorg offline. Volgens de NOS ging het onder meer om MijnOverheid, DigiD, de Tweede Kamer, Tweakers, de nieuwssite van RTL, de Autoriteit Persoonsgegevens en het Nationaal Cyber Security Centrum zelf. Notubiz, het vergadersysteem van een honderdtal gemeenten, ging er al eerder uit.
Wat er aan de hand is met PHP
PHP is de taal die op de server de pagina’s van je website in elkaar zet. WordPress draait erop, net als WooCommerce, Magento, Joomla, Drupal, PrestaShop en Laravel. Bij gedeelde hosting zit PHP er standaard bij.
De twee lekken zitten in PHP zelf, in de code die een binnenkomend verzoek verwerkt voordat je website er iets mee doet. Dat maakt ze zo ernstig. Een goed bijgehouden WordPress-site met de nieuwste plug-ins is net zo kwetsbaar als een verwaarloosde, want de aanval komt binnen voordat WordPress een regel code heeft gedraaid. Volgens de score van 9,2 is er geen inlog nodig, en het eindresultaat is eigen code die op je server draait. Daarmee kan een aanvaller een achterdeur plaatsen, klantgegevens meenemen of je site gebruiken om malware te verspreiden.
Bij de release publiceerde het PHP-team de details. CVE-2026-109618 misbruikt een geheugenfout die ontstaat als PHP tegen zijn geheugenlimiet aanloopt, CVE-2026-109619 misbruikt interne gegevens die PHP na een fout niet goed opruimt. Bij die tweede speelt de functie session.upload_progress een rol, die de voortgang van een upload bijhoudt en standaard aanstaat.
Wordt het lek al misbruikt?
Daarover lopen de berichten uiteen. Cloudflare meldde woensdagochtend om 09.43 uur Nederlandse tijd de eerste aanvallen te zien en zette direct regels in zijn firewall aan, ook voor gratis klanten. Patchstack, dat WordPress-sites beveiligt, kreeg van meerdere hostingpartners meldingen van misbruik. Het NCSC en de beveiligingsbedrijven watchTowr en Huntress hadden op dat moment nog geen actief misbruik gezien.
Over wat er na de release gebeurt, is iedereen het eens. Nu de fix openbaar is, kunnen aanvallers in de code zien wat er veranderd is en daar een aanval op bouwen. Sansec verwacht massale aanvallen binnen een kwartier na de release. Elke server die dan nog niet is bijgewerkt, is een doelwit.
Wat je host moet doen, en wat jij moet doen
Wie er iets moet doen, hangt af van het soort hosting dat je hebt.
| Soort hosting | Wie werkt PHP bij | Wat jij doet |
|---|---|---|
| Gedeelde hosting (shared) | je host | navragen wanneer de update erop staat, je PHP-versie checken |
| Managed WordPress of managed VPS | je host | navragen, verder niets |
| VPS of server zonder beheer | jij | nu zelf updaten |
| Statische site of sitebouwer zonder PHP | niet van toepassing | niets |
Op gedeelde hosting kun je PHP zelf niet bijwerken, dat gebeurt op serverniveau. Wel kies je in het controlepaneel meestal zelf welke PHP-versie je site gebruikt. Staat daar 8.1, 8.0 of 7.4, zet hem dan vandaag nog op 8.2 of hoger. Het PHP-team ondersteunt alleen versie 8.2 en nieuwer. Voor 8.1, 8.0 en 7.4 bracht het alleen een minimale aanpassing in de broncode uit, voor wie PHP zelf bouwt, en geen kant-en-klare update. Test na het omzetten even of je site en je contactformulier nog werken.
Stuur je host daarnaast een kort bericht met de vraag wanneer de nieuwe PHP-versies op je server staan. Een goede host heeft daar vandaag een antwoord op, en de meeste zetten het op hun statuspagina.
Met een VPS zonder beheer ligt de update bij jou. Installeer de nieuwe PHP-versie zodra je distributie hem aanbiedt, en herstart daarna PHP-FPM, want anders draaien de oude processen door. Haal je PHP uit de repository van Remi, wat veel voorkomt op servers met RHEL, AlmaLinux of Rocky Linux, let dan op: volgens de PHP Foundation publiceert die door vrijwilligers gerunde repository op 21 oktober geen updates. Stap dan over op de pakketten van je distributie.
Tijdelijke maatregelen tot de update erop staat
Het PHP-team is duidelijk: bijwerken is de enige echte oplossing. Tot het zover is, verkleinen deze stappen het risico. Op gedeelde hosting gaan ze meestal via je host.
Upload-voortgang uitzetten. Zet in php.ini, in de pool-configuratie van PHP-FPM of in de PHP-instellingen van je controlepaneel deze regels:
session.upload_progress.enabled = 0
session.use_strict_mode = 1
Uploads blijven werken, alleen de voortgangsbalk van PHP zelf verdwijnt, en die gebruiken WordPress, WooCommerce en Magento niet. Herstart daarna alle PHP-workers. Een .user.ini-bestand of ini_set() werkt hier niet, schrijft het PHP-team, want de instelling moet al gelden voordat PHP het verzoek verwerkt. PHP-ontwikkelaar Gina Peter Banyard waarschuwt dat deze instelling alleen geen bescherming biedt, dus zie het als extra drempel.
Uploads blokkeren waar ze niet nodig zijn. Heb je zelf toegang tot nginx of Apache, dan kun je verzoeken van het type multipart/form-data weigeren. Sansec geeft voor nginx deze regel:
if ($http_content_type ~* "multipart/form-data") {
return 403;
}
Daarmee werken ook alle gewone uploads niet meer, zoals de mediabibliotheek van WordPress of een contactformulier met bijlage. Sommige webshops versturen ook de winkelwagen op deze manier, dus plaats na het toevoegen een testbestelling.
Achter Cloudflare zetten. Cloudflare heeft regels tegen de bekende aanvalspatronen voor al zijn klanten aangezet, ook op het gratis abonnement. Dat helpt alleen als je server uitsluitend verkeer van Cloudflare accepteert, want een aanvaller die het IP-adres van je server kent, gaat er gewoon omheen. Overstappen naar Cloudflare vraagt een wijziging van je nameservers, en dat kan uren duren. Hoe zo’n dienst werkt, lees je in wat is een CDN.
Offline of alleen-lezen. Kun je je site een dag missen, dan is dat de veiligste keuze. Let op dat de onderhoudsmodus van WordPress of Magento hier niet werkt: PHP verwerkt het verzoek al voordat de onderhoudsmodus wordt gecontroleerd. Zet in plaats daarvan een statische pagina neer via je webserver, of laat alleen GET- en HEAD-verzoeken door. Bezoekers kunnen dan nog rondkijken, maar niet inloggen of bestellen.
Hoe Nederlandse hosts reageren
We hebben woensdag tussen 12.00 en 13.30 uur de statuspagina’s, nieuwsberichten en supportpagina’s van alle 24 hosts in onze vergelijker nagelopen. Twaalf hosts hebben iets over het PHP-lek gepubliceerd, vier zitten in spoedonderhoud zonder PHP te noemen, en bij acht vonden we niets.
| Reactie | Aantal hosts | Welke hosts |
|---|---|---|
| Uploads op het hele platform tijdelijk geblokkeerd | 1 | Savvii |
| Upload-voortgang uit en/of extra firewallregels | 6 | Antagonist, mijn.host, Hoasted, bHosted, Hypernode, Cloud86 |
| Maatregelen genomen zonder te zeggen welke | 1 | Combell |
| Alleen aangekondigd direct te updaten | 4 | Hostnet, Vimexx, one.com, xYnta |
| Spoedonderhoud zonder PHP te noemen | 4 | Versio, Neostrada, Yourhosting, Argeweb |
| Niets gevonden | 8 | TransIP, Strato, Mijndomein, Kinsta, DreamHost, Junda, Domeinwinkel, Hosting.nl |
De meest gekozen tijdelijke maatregel is dezelfde instelling die je zelf in php.ini kunt zetten. Antagonist, mijn.host, Hoasted, bHosted en Hypernode zetten de upload-voortgang van PHP op al hun servers uit, bHosted en Hypernode zetten ook de strikte sessiemodus aan. Antagonist deed dat vanaf 10.57 uur, Hypernode meldde het om 11.39 uur. Cloud86 rolde nieuwe firewallregels uit op zijn gedeelde, managed WordPress- en managed VPS-servers, en mijn.host en bHosted deden dat naast de PHP-instelling. mijn.host gaat het verst in zijn advies: wie gevoelige gegevens op zijn site heeft, moet volgens de host zelf afwegen of hij die tot de update offline haalt, en de statuspagina legt uit hoe dat met een .htaccess-bestand kan.
Savvii, de managed WordPress-specialist, nam de zwaarste maatregel. Het blokkeert tijdelijk alle multipart-verzoeken op zijn platform, dus ook uploads en sommige formulieren. Combell meldt om 12.01 uur dat het op zijn hele infrastructuur maatregelen heeft genomen, maar niet welke.
Hostnet plant vanaf 16.00 uur onderhoud tot 23.00 uur om de update direct uit te rollen, en waarschuwt dat sites daarbij een paar minuten offline kunnen zijn. Vimexx belooft alle servers bij te werken zodra de update er is en geeft klanten de php.ini-regels om zelf toe te passen. one.com en xYnta zeggen klaar te staan voor de update.
Bij Versio, Neostrada, Yourhosting en Argeweb staat sinds ongeveer 08.50 uur spoedonderhoud tot 17.00 uur op de statuspagina, met de waarschuwing dat websites tijdelijk onbereikbaar kunnen zijn. PHP noemen ze niet. Versio en Neostrada delen een statuspagina, net als Yourhosting en Argeweb.
Bij acht hosts vonden we niets, ook niet bij TransIP, een van de grootste hosts van Nederland. Op de storingspagina van TransIP stond op het moment van onze check alleen dat alle diensten beschikbaar zijn. Strato en Domeinwinkel hebben geen statuspagina die we konden bereiken. Dat een host niets publiceert, betekent niet dat hij niets doet, maar als klant van zo’n host moet je het dan wel zelf navragen.
De gerepareerde versies
Het PHP-team bracht woensdagmiddag vier nieuwe versies uit: PHP 8.5.12, 8.4.27, 8.3.36 en 8.2.35. Volgens het beveiligingsadvies loopt elke installatie die webverzoeken verwerkt risico, met PHP-FPM, Apache met mod_php, php-cgi, FrankenPHP en LiteSpeed. Het grootste risico ziet het team bij mod_php.
Check in je controlepaneel of via Gereedschap, Sitestatus in WordPress welke exacte versie je site draait. Staat daar een lager nummer dan hierboven binnen jouw reeks, dan is je server nog niet bijgewerkt.
Zie je in de dagen erna vreemde bestanden in je webmap, onbekende beheerders in WordPress of een plotselinge piek in uitgaande mail, neem dan meteen contact op met je host. Een site die tussen 20 oktober en de update is binnengedrongen, blijft besmet, ook als PHP inmiddels is bijgewerkt.
Merk je dat je host traag of vaag reageert op een vraag over dit lek, dan is dat een goed moment om te vergelijken. Bij managed WordPress hosting neemt de host dit soort updates voor je over, en in hosting overstappen lees je hoe je verhuist zonder dat je site offline gaat. Alle hosts naast elkaar zie je in onze vergelijker.