PHP-lek: waarom websites vandaag vrijwillig op zwart gaan

Gevonden via cert.europa.eu (opent in een nieuw tabblad)

Door twee kritieke lekken in PHP gaan vandaag websites vrijwillig op zwart. Ook bij ons: de site van Febelfin, de federatie van de Belgische financiële sector, is onbereikbaar. Een uitleg staat er niet bij. Bij de buren lag onder meer Tweakers eruit, meldt de NOS (opent in een nieuw tabblad). Ook /dev/null, het social network voor developers waar ik deze week nog over schreef, toonde een onderhoudspagina. Ze patchten eerst, zodat “the only remote code running here is ours”. Intussen zijn beide weer online.

Wat er met PHP aan de hand is

CERT-EU (opent in een nieuw tabblad), het cybersecurityteam van de Europese instellingen, waarschuwde vandaag voor CVE-2026-109618 en CVE-2026-109619. Beide krijgen een score van 9,2 op 10 en kunnen leiden tot remote code execution: iemand laat zonder in te loggen zijn eigen code op je server draaien. Details lekten al op 20 oktober uit, voor de geplande bekendmaking, schrijft Sansec (opent in een nieuw tabblad).

Intussen is de patch er. PHP bracht (opent in een nieuw tabblad) versies 8.5.12, 8.4.27, 8.3.36 en 8.2.35 uit en noemt updaten de enige veilige keuze. Linux-distributies kregen de patches vooraf. Later vandaag kwam er meer uitleg over de ontdekking en de samenwerking achter de patches.

Of er al misbruik is, daarover verschillen de bronnen. Patchstack (opent in een nieuw tabblad) krijgt meldingen van aanvallen via hostingpartners, het Nederlandse Nationaal Cyber Security Centrum (NCSC) zag nog geen actief misbruik. CERT-EU raadde aan om klaar te staan om meteen te patchen, en sites die dat niet kunnen af te schermen van het internet. Vandaar al die zwarte schermen. De onderhoudsmodus van WordPress of Magento helpt volgens Sansec niet, omdat PHP het verzoek al verwerkt voor de site die modus checkt.

Er werd al twee maanden aan gewerkt

OpenAI beschrijft (opent in een nieuw tabblad) hoe het de voorbije twee maanden de aanpak mee coördineerde met onder meer Wiz en Cloudflare. De PHP-maintainers leidden de fixes en de release. Calif vond een kritiek lek met GPT-5.6 Sol; Wiz ontdekte en meldde beide lekken ook onafhankelijk.

Dat is gecoördineerde bekendmaking: de betrokken teams krijgen vooraf tijd om fixes te testen en bescherming klaar te zetten. Volgens Sansec (opent in een nieuw tabblad) lekten op 20 oktober al details uit. Daarmee kregen ook aanvallers informatie vóór de geplande bekendmaking. Websites tijdelijk afschermen tot de patch geïnstalleerd en gecontroleerd was, hielp die periode te overbruggen.

Hoe eenvoudig was hacken dan? PHP bevestigt (opent in een nieuw tabblad) dat bij een aangetoonde aanval op Apache met mod_php één verzoek zonder login volstaat, nog voor de websitecode draait. Calif testte aanvallen op onder meer WordPress en Drupal (opent in een nieuw tabblad). De aanvalsmogelijkheden hangen af van de PHP-versie en serverconfiguratie. Deze lekken zitten in PHP zelf en vereisen geen onveilige communityplugin. Of wordpress.com of wordpress.org beschermd is, kun je niet afleiden uit het feit dat de site online blijft.

PHP is niet onveiliger, wel overal

Daaruit besluiten dat PHP onveilig is, of dat een website op PHP dat is, vind ik te kort door de bocht. PHP wordt gewoon echt veel gebruikt: volgens W3Techs (opent in een nieuw tabblad) draait 69,3% van de websites waarvan de servertaal gekend is op PHP. Daar zitten WordPress, Drupal, Magento en Laravel tussen. Een lek in zoiets raakt meteen een groot stuk van het web, en dus gaat er zoveel tegelijk offline.

Ook Belgische gemeentelijke websites worden met Drupal gebouwd. iO koos het bijvoorbeeld voor de nieuwe website van Mechelen (opent in een nieuw tabblad). Dat maakt dit ook een probleem voor lokale dienstverlening. VRT NWS meldt in zijn liveblog (opent in een nieuw tabblad) dat onder meer de stad Gent haar website preventief offline haalde. Op het moment van deze update waren ook de chats van Awel, Tele-Onthaal en de Zelfmoordlijn onbereikbaar. Hun telefoonlijnen bleven beschikbaar. Een site die offline gaat, is dus niet noodzakelijk gehackt; de organisaties nemen voorzorgsmaatregelen.

AI zoekt mee naar lekken

De ontdekking met hulp van AI past in wat er merkbaar aan het gebeuren is. We ontwikkelen veel met artificiële intelligentie (AI), ik ook, maar AI wordt evengoed continu gebruikt om kwetsbaarheden te ontdekken. Greg Castle van Kubernetes schreef in april op de CNCF-blog (opent in een nieuw tabblad) dat het nu “trivial” is voor niet-experts om echte lekken te vinden. Google stopte op 1 oktober met het aannemen van meldingen voor zijn open source bug bounty, na een vloed aan automatische inzendingen (opent in een nieuw tabblad) die grotendeels ongeldig waren.

Dat wordt een nieuwe online battle, en open source voelt de druk. Software als PHP wordt vaak onderhouden door een community en is zeker niet altijd betaald. Die teams doen er alles aan om hun software gebruiksvriendelijk en veilig te houden, en krijgen nu meldingen binnen aan het tempo van een machine. Crazy times.

Updates en onderhoudscontracten

Dit toont nog maar eens hoe belangrijk het is om websites en platformen regelmatig te updaten. Een fix van PHP helpt pas als iemand hem ook installeert. PHP zelf ondersteunt alleen versie 8.2 en hoger. Voor 7.4, 8.0 en 8.1 zette het securityteam deze keer wel minimale fixes in de broncode online, maar wie zo’n oude versie draait, moet die zelf bouwen of bij zijn leverancier aankloppen.

Daarvoor dienen onderhoudscontracten. Die zijn er voor een reden.

Onze hostingpartner GeNx (opent in een nieuw tabblad) bracht ons proactief op de hoogte. In overleg met onze klanten haalden ze ook kritieke websites offline om erger te voorkomen. Veel website-eigenaars weten niet eens dat hun site op PHP draait en zijn zich van geen kwaad bewust. Dan maakt het een groot verschil dat je hostingpartner de situatie actief opvolgt en zelf aan de bel trekt.

Merci aan Sam en het team van GeNx voor die opvolging. Goeie service telt, zeker op zo’n dag.