Een blauwe olifant met een kop koffie terwijl twee monteurs in schorten lappen op zijn flank naaien, in een koffiebar vol serverkasten, met een klok op half vijf en een dichte deur met een verbodsbord voor pakketjes
AI-gegenereerd. De klok staat op het moment dat elke server gepatcht was, en de pakketjes bij de dichte deur staan voor de uploads die onze loadbalancer een paar uur weigerde.

Op 20 oktober kondigde het PHP-project een beveiligingsrelease aan voor de volgende dag om 14:00 UTC (16:00 Nederlandse tijd). Die repareert twee kritieke kwetsbaarheden, CVE-2026-109618 en CVE-2026-109619, allebei met een CVSS-score van 9,2 en allebei bruikbaar om zonder in te loggen code op een server uit te voeren. De versies met de fix zijn 8.2.35, 8.3.36, 8.4.27 en 8.5.12. Voor PHP 8.1 en ouder komt geen officiële release; het PHP-securityteam publiceerde alleen broncode-backports voor wie PHP zelf compileert.

Op de ochtend van de 21e meldde Cloudflare dat er vanaf 07:43 UTC al exploits in gebruik waren, ruim zes uur voor de release.

Zorgen dat de patch vanzelf zou binnenkomen

Voor de release zorgden we ervoor dat elke webserver de nieuwe PHP-pakketten zelf zou installeren. Automatische updates draaien nu elk uur in plaats van eens per dag, en halen eerst de nieuwste pakketlijst op. Een nieuwe build wordt dus binnen het uur opgepikt.

Sites weg van een server die nooit een patch zou krijgen

Een deel van de sites draaide nog op een oudere server waarvan het besturingssysteem geen PHP-updates meer krijgt. Wat PHP die middag ook uitbracht, het zou daar nooit aankomen.

Diezelfde ochtend verhuisden we elke site die nog in gebruik was naar een actuele server. Na elke verhuizing vergeleken we de site automatisch met het origineel. Bij afwijkingen draaiden we de verhuizing terug. Voor bezoekers bleef alles hetzelfde, op een paar problemen na die we dezelfde dag hebben opgelost.

Ongebruikte kopieën en oude restanten op die server gingen offline, en diensten die daar niet meer nodig waren, hebben we uitgezet.

PHP 8.2 of nieuwer, overal

Voor PHP 7.4, 8.0 en 8.1 komt geen nieuwe officiële release, dus hebben we alle sites naar PHP 8.2 of nieuwer overgezet. Toen geen enkele site de oude versies nog gebruikte, hebben we ze op al onze webservers uitgezet.

Tijdelijke bescherming tot de patch erop stond

Beide kwetsbaarheden zijn bereikbaar via multipart-verzoeken, het type verzoek dat browsers gebruiken voor bestandsuploads en veel formulieren. Tot de nieuwe versie draaide:

  • Op elke server ging de upload-progress-functie van PHP-sessies uit. PHP noemt dat zelf een gedeeltelijke maatregel, en het dekt maar één van de twee bugs.
  • Onze loadbalancer weigerde multipart-verzoeken naar PHP-sites. Dat beperkte het risico voor alle sites erachter in één keer. Een paar uur lang werkten bestandsuploads en sommige contactformulieren niet. Gewone pagina's, inloggen en eenvoudige formulieren bleven werken.
  • Beheertools en één testapplicatie die we nog niet konden patchen, gingen dicht voor het publiek of uit.

Patchen

De pakketten met de fix verschenen in de loop van de middag, per distributie op een ander moment. De Debian-builds kwamen rond 15:30 binnen, nog voor het aangekondigde releasemoment, en een deel van onze servers draaide ze een paar minuten later. De RPM's volgden rond 16:15. Zodra er een beschikbaar was, installeerden we die, controleerden we dat elke server de nieuwe versie draaide en keken we of de sites nog werkten.

Onze PHP-pakketten komen uit twee repositories die door individuele maintainers worden bijgehouden: die van Ondřej Surý voor Debian en die van Remi Collet voor Red Hat-achtige systemen. Allebei hadden ze de middag van de release al builds klaar, waardoor een deel van onze servers de fix al voor het releasemoment draaide. Dank jullie wel.

Om 16:30, een half uur na het aangekondigde releasemoment, draaiden al onze webservers de gepatchte PHP-versies. De multipart-blokkade ging eraf en uploads en formulieren werkten weer.

Een paar applicaties in containers wachten nog op bijgewerkte images van hun leveranciers. Tot die er zijn, blijven ze achter de tijdelijke bescherming.

Voor site-eigenaren

  • Houd je CMS, plugins en thema's bij. Plugins die niet meer onderhouden worden, zijn meestal de reden dat een site niet naar een nieuwere PHP-versie kan.
  • Plan de overstap naar PHP 8.3 of nieuwer. PHP 8.2 krijgt nog beveiligingsupdates tot 31 december 2026.
  • Werkt er sinds 21 oktober iets anders op je site dan je gewend bent? Laat het ons weten via support@coffeesprout.com of 085 004 3957.

Bronnen

Beheer je PHP-sites voor je klanten? Lees meer over onze websitehosting voor bureaus, of neem contact op.

Meer van de koffiebar →