Gids voor beveiliging en regressietests · CVE-2026-109618 · CVE-2026-109619

Kritieke PHP-kwetsbaarheden: gepatchte versies en regressietests

Lees wat CVE-2026-109618 en CVE-2026-109619 betekenen, controleer de update bij je provider en test of je toepassing goed blijft werken.

Onderzoek bijgewerkt op 21 oktober 2026. Raadpleeg vóór een update de officiële PHP-melding.

Controleer eerst welke runtime verzoeken afhandelt

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-reeksKwetsbaar vóórGepatcht vanafBeveiligingsondersteuning
8.5< 8.5.128.5.12Ondersteund
8.4< 8.4.278.4.27Ondersteund
8.3< 8.3.368.3.36Ondersteund
8.2< 8.2.358.2.35Tot 31 dec. 2026
8.1, 8.0 en 7.4Getroffen; EOLMinimale broncodepatch of providerpakketControleer bij provider
7.3 en ouderGetroffen; EOLGeen upstreamrelease vermeldMigreer; ga niet uit van een patch
Gepatchte versie per PHP-reeks
PHP 8.5
Oudere versies8.5.12 gepatcht
PHP 8.4
Oudere versies8.4.27 gepatcht
PHP 8.3
Oudere versies8.3.36 gepatcht
PHP 8.2
Oudere versies8.2.35 gepatcht

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

  1. Begin met diensten die vanaf internet bereikbaar zijn en controleer of de provider het gepatchte pakket aanbiedt.
  2. Werk eerst een representatieve omgeving bij volgens de instructies van het systeem, de hosting of de image.
  3. Bouw containers opnieuw met een gepatchte image; een update van de host verandert PHP in de image niet.
  4. Start PHP-processen opnieuw of vervang ze volgens de instructies van de provider, zodat ze de nieuwe versie laden.
  5. Controleer de versie in de omgeving die echt verkeer ontvangt.
  6. Voer de basiscontroles en belangrijkste regressietests uit.
  7. Houd fouten, logs en metingen in de afgesproken periode in de gaten.
  8. 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.
  1. 01PHP-versies inventariseren
  2. 02Patch toepassen
  3. 03Actieve processen controleren
  4. 04Stromen testen
  5. 05Resultaten beoordelen
  6. 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.

OnderdeelVoorbeeldControlerenNuttig bewijs
BeschikbaarheidOpstart, statuscontrole en hoofdpaginaProces actief en verwachte reactieVersie, omgeving, tijd en opgeschoonde log
AanmeldenInloggen, uitloggen en verlopen sessieGeldige sessie en beëindigingTestaccount en resultaat; nooit wachtwoord of cookie
RechtenToegang toestaan of weigeren per rolRechten en blokkering van ongeoorloofde toegangRol, onderdeel en werkelijk resultaat
FormulierenBelangrijke gegevens maken of wijzigenValidatie, opslag en bedrijfsregelsSynthetische gegevens en opgeschoonde schermafbeelding
API’sSucces, fout en time-outStatus, velden, aanmelden en foutafhandelingVerzoek en antwoord zonder geheimen
BestandenBestand uploaden, lezen en downloadenType, grootte, opslag en rechtenTestbestand en resultaat
AchtergrondtakenWachtrij, geplande taak en nieuwe pogingEindstatus en foutafhandelingTaak-ID, tijdstippen en opgeschoonde uitvoer
Gegevens en sessiesOpslag tussen verzoeken en processenConsistentie en scheiding tussen gebruikersFictieve 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

Deze gids is QA-informatie en vervangt geen instructies van PHP, het besturingssysteem, de container of hostingprovider. Laatst bijgewerkt: 21 oktober 2026.