PHP heeft patches uitgebracht voor ondersteunde versies. Distributies en hostingproviders kunnen patches terugporteren zonder het versienummer te wijzigen. Controleer de melding van je provider voordat je een pakket als kwetsbaar bestempelt.
Wat PHP meldde en wat het betekent
Op 21 oktober 2026 bracht het PHP-project patches uit voor CVE-2026-109618 en CVE-2026-109619. Onder bepaalde omstandigheden kunnen deze kritieke runtimefouten uitvoering van code op afstand zonder aanmelding mogelijk maken op systemen die webverzoeken verwerken. PHP adviseert zulke installaties als kwetsbaar te behandelen totdat versie en providerpatch zijn gecontroleerd.
CVE-2026-109618 gaat over beschadiging van interne status bij geheugentekort. CVE-2026-109619 beschrijft een globale status die verwijzingen naar geheugen van een eerder verzoek kan bewaren. Je hoeft de aanval niet na te bootsen. Werk gecontroleerd bij en controleer daarna of de toepassing blijft werken.
De melding noemt een specifiek risico voor Apache met mod_php en noemt ook PHP-FPM, php-cgi, FrankenPHP en LiteSpeed. Het risico hangt af van runtime, configuratie en applicatiepaden. Ga er niet van uit dat iedere installatie hetzelfde risico heeft.
Getroffen en gepatchte versies
De tabel toont upstreamversies die PHP op 21 oktober 2026 heeft uitgebracht. “Gepatcht vanaf” is de eerste versie in de reeks met de officiële oplossing. Systeempakketten, providerimages en beheerde hosting kunnen een backport bevatten zonder het zichtbare versienummer te wijzigen. Controleer daarom ook de melding van je provider.
De beveiligingsondersteuning voor PHP 8.2 eindigt naar verwachting op 31 december 2026. Versie 8.2.35 lost deze CVE’s op binnen die reeks, maar plan ook een overstap naar een versie die ondersteuning houdt. PHP brengt geen reguliere releases meer uit voor 8.1 en ouder. Voor 7.4, 8.0 en 8.1 zijn minimale broncodepatches gepubliceerd; providers kunnen eigen pakketten onderhouden. Controleer wat daadwerkelijk is geïnstalleerd.
| PHP-reeks | Kwetsbaar vóór | Gepatcht vanaf | Beveiligingsondersteuning |
|---|---|---|---|
| 8.5 | < 8.5.12 | 8.5.12 | Ondersteund |
| 8.4 | < 8.4.27 | 8.4.27 | Ondersteund |
| 8.3 | < 8.3.36 | 8.3.36 | Ondersteund |
| 8.2 | < 8.2.35 | 8.2.35 | Tot 31 dec. 2026 |
| 8.1, 8.0 en 7.4 | Getroffen; EOL | Minimale broncodepatch of providerpakket | Controleer bij provider |
| 7.3 en ouder | Getroffen; EOL | Geen upstreamrelease vermeld | Migreer; ga niet uit van een patch |
Vergelijk versies binnen dezelfde reeks. Distributiepakketten kunnen backports bevatten en een ander versienummer tonen.
Voor de update: inventariseren en voorbereiden
Zoek alle plekken waar PHP wordt gebruikt: servers, containers, basisimages, hostingpanelen, ingebouwde runtimes, achtergrondtaken en testomgevingen. Een website kan meerdere versies gebruiken. Stel vast welke dienst verkeer ontvangt en wie de update beheert.
Noteer versie en pakketbron, besturingssysteem, webserver, runtime, image indien van toepassing, toepassing, omgeving, verantwoordelijke en hoe je teruggaat naar de vorige versie als er iets misgaat. Publiceer `phpinfo()` niet; die pagina kan gevoelige gegevens tonen. Gebruik interne inventaris en goedgekeurde providertools.
Lees de opmerkingen van de provider en de migratiegids als je naar een andere PHP-reeks gaat. Plan onderhoud, een herstelbare back-up en duidelijke stappen om terug te gaan. Vraag bij beheerde diensten om bevestiging van de versie en een eventuele herstart of nieuwe uitrol.
Veilig bijwerken
- Begin met diensten die vanaf internet bereikbaar zijn en controleer of de provider het gepatchte pakket aanbiedt.
- Werk eerst een representatieve omgeving bij volgens de instructies van het systeem, de hosting of de image.
- Bouw containers opnieuw met een gepatchte image; een update van de host verandert PHP in de image niet.
- Start PHP-processen opnieuw of vervang ze volgens de instructies van de provider, zodat ze de nieuwe versie laden.
- Controleer de versie in de omgeving die echt verkeer ontvangt.
- Voer de basiscontroles en belangrijkste regressietests uit.
- Houd fouten, logs en metingen in de afgesproken periode in de gaten.
- Gaat er iets belangrijks mis, stop dan de uitrol, leg vast wat er gebeurde en ga volgens het plan terug naar de vorige versie. Een WAF-regel of tijdelijke maatregel vervangt de patch niet.
- 01PHP-versies inventariseren
- 02Patch toepassen
- 03Actieve processen controleren
- 04Stromen testen
- 05Resultaten beoordelen
- 06Besluit over uitrol nemen
Een regressieplan maken
Regressietests na een patch zoeken naar onverwachte gevolgen in de toepassing en integraties. Ze bewijzen niet dat PHP vrij is van kwetsbaarheden en vervangen geen beveiligings-, afhankelijkheids- of configuratiecontrole.
Baken de wijziging af: PHP-versie, diensten, configuratie, extensies, afhankelijkheden en omgevingen. Breng stromen met PHP en gedeelde processen, sessies, cache, bestanden of wachtrijen in kaart. Geef prioriteit op basis van bedrijfsimpact, bereikbaarheid en herstelkosten. Noteer onbekende afhankelijkheden als risico dat nog moet worden onderzocht.
Verdeel de tests in drie groepen: basiscontroles voor beschikbaarheid en essentiële functies; gerichte tests voor gewijzigde of afhankelijke onderdelen; en een bredere suite voor onderdelen met grote impact. Leg versie, omgeving en testgegevens vast, zodat resultaten te onderzoeken en te herhalen zijn.
Voorbeelden van testgevallen
Pas deze voorbeelden aan je architectuur en bedrijfsregels aan. Ze vormen geen universeel testpakket. Laat weg wat niet van toepassing is en voeg eigen stromen, extensies en integraties toe. Gebruik testaccounts en synthetische gegevens, geen echte wachtwoorden of persoonsgegevens.
| Onderdeel | Voorbeeld | Controleren | Nuttig bewijs |
|---|---|---|---|
| Beschikbaarheid | Opstart, statuscontrole en hoofdpagina | Proces actief en verwachte reactie | Versie, omgeving, tijd en opgeschoonde log |
| Aanmelden | Inloggen, uitloggen en verlopen sessie | Geldige sessie en beëindiging | Testaccount en resultaat; nooit wachtwoord of cookie |
| Rechten | Toegang toestaan of weigeren per rol | Rechten en blokkering van ongeoorloofde toegang | Rol, onderdeel en werkelijk resultaat |
| Formulieren | Belangrijke gegevens maken of wijzigen | Validatie, opslag en bedrijfsregels | Synthetische gegevens en opgeschoonde schermafbeelding |
| API’s | Succes, fout en time-out | Status, velden, aanmelden en foutafhandeling | Verzoek en antwoord zonder geheimen |
| Bestanden | Bestand uploaden, lezen en downloaden | Type, grootte, opslag en rechten | Testbestand en resultaat |
| Achtergrondtaken | Wachtrij, geplande taak en nieuwe poging | Eindstatus en foutafhandeling | Taak-ID, tijdstippen en opgeschoonde uitvoer |
| Gegevens en sessies | Opslag tussen verzoeken en processen | Consistentie en scheiding tussen gebruikers | Fictieve ID’s en status vóór en na |
Wanneer zijn de tests klaar?
Spreek vooraf af welke fouten de uitrol blokkeren. Ga niet verder als aanmelden, rechten, een belangrijke handeling, gegevensintegriteit of een essentiële koppeling faalt, als de gepatchte versie niet kan worden bevestigd of als nieuwe fouten onverklaard blijven. Een test die door de omgeving wordt geblokkeerd, is niet geslaagd.
Vergelijk na afloop de dekking met de wijziging. Bekijk mislukte, geblokkeerde en open tests, bewijs en resterende risico’s. Een groene suite zegt alleen iets over de uitgevoerde tests; ze bewijst niet dat alle servers zijn gepatcht.
Checklist
- De inventaris bevat servers, containers en providerdiensten.
- Pakketbron en gebruikte beveiligingsmelding zijn vastgelegd.
- Processen die verkeer ontvangen zijn volgens advies herstart.
- Versie, omgeving en synthetische gegevens staan bij resultaten.
- Fouten en open risico’s hebben een verantwoordelijke.
- Geheimen en persoonsgegevens zijn uit bewijs verwijderd.
Bewijs bewaren dat je team kan teruglezen
Met Treseko kan het team testgevallen, suites, versies, uitvoeringen, resultaten, fouten en bijlagen organiseren. Het team stelt tests zelf in en voert ze uit in de eigen omgeving. Treseko installeert de patch niet en vindt niet automatisch elke PHP-installatie.
Officiële bronnen en handige links
- Officiële PHP-beveiligingsmelding
- Beveiligingsadvies CVE-2026-109618 (PHP/GitHub)
- Beveiligingsadvies CVE-2026-109619 (PHP/GitHub)
- Ondersteunde PHP-versies
- Officiële PHP-downloads
- Officiële migratiegids voor PHP 8.5
Deze gids is QA-informatie en vervangt geen instructies van PHP, het besturingssysteem, de container of hostingprovider. Laatst bijgewerkt: 21 oktober 2026.