Niet php.net · Niet NVD · Niet CISA

PHP-kwetsbaarhedentracker

Onofficiële briefing over beveiligingslekken in PHP

English简体中文日本語DeutschFrançaisNederlandsEspañol

Beveiligingswaarschuwing

PHP2Shell: werk PHP bij. Dat is de enige volledige oplossing.

CVE-2026-109618 en CVE-2026-109619 zijn kritieke kwetsbaarheden in PHP zelf die uitvoering van code op afstand zonder authenticatie mogelijk maken. Het PHP-project bracht op 21 oktober 2026 fixes uit voor de ondersteunde takken 8.2 tot en met 8.5. Herstart PHP na de update. Een firewall is geen vervanging.

Stappen om te patchen

CVE-2026-109619 · GHSA-6wmf-4rv5-p3rp

CVE-2026-109619: uitvoering van code op afstand in PHP door verouderde globale toestand

De beschrijving van het PHP-project van CVE-2026-109619 is kort en concreet: interne, aan een verzoek gebonden toestand kan blijven bestaan nadat het geheugen ervan is vrijgegeven, en een later verzoek op dezelfde worker kan die verouderde toestand gebruiken voordat de normale initialisatie hem terugzet. Beoordeeld als kritiek, CVSS v4.0 9.2 – dezelfde score als CVE-2026-109618.

Laatst bijgewerkt

Kenmerken. De score 9.2 wordt gebruikt door het PHP-project, partnerinstanties van de CISA en het advies van de University of Toronto.
VeldGegeven uit de geciteerde bronnen
CVECVE-2026-109619
GitHub-advisoryGHSA-6wmf-4rv5-p3rp
ErnstKritiek. CVSS v4.0 9.2.
NVD-scoreCVSS v3.1 9.8 Kritiek (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), Primary-score van de NVD, op 22 oktober 2026 via de NVD-API opgevraagd.
VectorHet advies van de University of Toronto kent beide CVE’s AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H toe. In de meldingstekst van php.net vonden wij deze vector niet.
Fix-releasesDezelfde pakketten als bij CVE-2026-109618: 8.2.35, 8.3.36, 8.4.27, 8.5.12.
Type kwetsbaarheidUse-after-free is de term van de PHP Foundation, de University of Toronto en het Canadian Cyber Centre (CWE-416). De kop op php.net luidt „RCE via stale global state”.

Wat er misgaat, op het niveau van de leveranciersinformatie

Volgens de PHP Foundation kan een fatale fout op de verkeerde plek interne toestand achterlaten die naar geheugen van een vorig verzoek wijst. Een later verzoek op dezelfde worker kan dat vrijgegeven geheugen dan gebruiken. De Foundation zegt dat de use-after-free en een crash van de worker zijn bevestigd, en dat de melder uitvoering van code op afstand heeft gedemonstreerd tegen een echte applicatie op Apache met mod_php. De beschrijving van het Britse NCSC komt overeen met de zin van php.net.

Het advies van de University of Toronto noemt de standaard ingeschakelde session upload progress als een bevestigd pad. Volgens de tijdelijke PHP-aanbeveling blokkeert session.upload_progress.enabled=0 de bevestigde sessiepaden, maar niet andere varianten. Uitschakelen is een mitigatie, geen oplossing. Hoe een verzoek het tijdvenster van de fatale fout bereikt, beschrijven wij niet.

mod_php en PHP-FPM

Expel zegt met verwijzing naar PHP dat PHP deze CVE tegen PHP-FPM heeft gedemonstreerd wanneer de applicatiecode zelf in een fatale fout kan worden gedreven. De FPM-blootstelling hangt af van applicatie en configuratie; PHP beschouwt FPM-installaties toch als risicovol. mod_php blijft de configuratie die het PHP-project als hoogste risico aanmerkt. Het Canadian Cyber Centre herhaalt dat: met een gedemonstreerde exploit op mod_php kan een verzoek zonder authenticatie het lek vóór de applicatiecode activeren.

Oplossing

Er is geen aparte patch. Installeer de releases van 21 oktober en herstart elke worker. Voor PHP 8.5 noemt het project daarnaast fatal_error_backtraces=0 als tijdelijke maatregel, die alleen het bevestigde pad via fatal-backtraces blokkeert. Diagnostiek verbergen met error_reporting, display_errors of de @-operator helpt volgens php.net niet. Google Cloud noemt voor het paar 5.4 tot en met 8.5.11 als kwetsbaar; hoe dat aansluit bij de daadwerkelijk gepatchte takken, staat op de versiepagina.

Waarom het lek twee verzoeken op dezelfde worker nodig heeft

PHP’s volledige advisory beschrijft het lek als een paar. Eerst laat een bewerking een pointer naar het geheugen van één verzoek achter in een worker-brede globale toestand (fout-, sessie-, object- of extensietoestand) en wordt onderbroken voordat die gewist is, bijvoorbeeld door een fatale fout, een mislukte require, een time-out of geheugentekort. Daarna geeft de worker dat geheugen vrij, neemt het volgende verzoek aan, en iets dat vóór de normale start draait gebruikt de oude pointer. Beide helften moeten op dezelfde worker landen; meer workers en recycling vertragen een aanval, maar voorkomen hem niet.

Waar vroege instellingen vandaan komen, per SAPI

Een bevestigde trigger is een waarschuwing of deprecation terwijl PHP vóór de start instellingen per verzoek toepast, ook als de melding nooit getoond of gelogd wordt. Fouten onderdrukken helpt dus niet. Of dat pad bestaat, hangt af van hoe instellingen PHP bereiken:

Extra stappen uit de advisory als je nog niet kunt patchen

Bronnen

Externe links verlaten deze site. Wij hosten geen exploitcode.

  1. News archive 2026: security advisory, 21 October 2026 — PHP project (php.net)
  2. Today’s PHP security release, and how we’re strengthening PHP security — The PHP Foundation
  3. GHSA-6wmf-4rv5-p3rp — CVE-2026-109619 — PHP (GitHub Security Advisory)
  4. Security advisory: critical unauthenticated RCE in PHP (“php2shell”) — University of Toronto Information Security
  5. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  6. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  7. Critical security issue affecting PHP — UK NCSC
  8. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  9. CVE-2026-109619 — NVD
  10. AL26-026 — Critical vulnerabilities impacting PHP — Canadian Centre for Cyber Security
  11. PHP vulnerability CVE-2026-109619 (reproduces PHP’s advisory) — Inphinit (PHP framework documentation)