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-109618 · GHSA-w8hw-w9fx-j79w

CVE-2026-109618: uitvoering van code op afstand in PHP door out-of-memory-corruptie

Het PHP-securityteam beschrijft CVE-2026-109618 als kritieke kwetsbaarheid in de PHP-kern: de out-of-memory-afhandeling kan PHP onderbreken terwijl interne verzoekgegevens maar gedeeltelijk zijn geïnitialiseerd, en de opruiming daarna kan die ongeldige gegevens als geldig behandelen. Het team geeft CVSS v4.0 9.2 en zegt dat alleen een update een volledige oplossing is.

Laatst bijgewerkt

Kenmerken volgens het PHP-project en secundaire adviezen.
VeldGegeven uit de geciteerde bronnen
CVECVE-2026-109618
GitHub-advisoryGHSA-w8hw-w9fx-j79w
ErnstKritiek. CVSS v4.0-basisscore 9.2, opgegeven door Jakub Zelenka op oss-security namens het PHP-securityteam.
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.
VectorAV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H volgens het advies van de University of Toronto. Het bekeken oss-security-bericht noemt de score 9.2, niet deze vector.
Fix-releases8.2.35, 8.3.36, 8.4.27, 8.5.12 en latere releases van deze takken.
CWEHet Canadian Centre for Cyber Security deelt beide PHP2Shell-CVE’s in als use-after-free (CWE-416). Het PHP-project zelf noemt deze CVE out-of-memory-corruptie; die benaming gebruiken wij.

Wat er misgaat, op het niveau van de leveranciersinformatie

Op oss-security schreef Jakub Zelenka dat PHP de verzoekverwerking bij out-of-memory-fouten afbreekt via longjmp(); een mislukte geheugentoewijzing kan de initialisatie onderbreken terwijl onvolledige verzoektoestand al bereikbaar is, en het afsluiten van het verzoek kan dan die ongeldige toestand benaderen en zo mogelijk uitvoering van code op afstand toestaan. De weergave van de PHP Foundation sluit daarbij aan: bereikte een verzoek memory_limit op het verkeerde moment, dan konden gedeeltelijk geïnitialiseerde gegevens achterblijven en later als geldig gelden.

Verder dan dit mechanisme publiceren wij niets. Hoe je de geheugenfout afdwingt, beschrijven wij niet.

Wat is gedemonstreerd

Impact

Geslaagd misbruik betekent uitvoering van code op afstand zonder authenticatie met de rechten van het besturingssysteemaccount van de PHP-worker. Wiz en Cloudflare noemen daarnaast crashes en het lekken van procesgeheugen. De reikwijdte hangt af van build, extensies en serveropbouw; volgens de University of Toronto wisselt de betrouwbaarheid, en PHP heeft volledige RCE gevalideerd. Een betrouwbare uitspraak „werkt overal” staat niet in de bekeken bronnen – en er is geen reden om daarop te wachten met patchen.

Oplossing

Werk bij naar 8.2.35, 8.3.36, 8.4.27 of 8.5.12 of nieuwer en herstart de workers die verkeer afhandelen. Volgens oss-security is de update de enige volledige oplossing. Tijdelijke instellingen van PHP, waaronder memory_limit=-1 en een lage post_max_size, zijn onvolledig: ook zonder stuurbare geheugenlimiet kan een onderliggende toewijzingsfout het kwetsbare pad bereiken. Volgens Tanium is de NVD-vermelding op 21 oktober 2026 gepubliceerd en gemarkeerd als „Undergoing Analysis”. Gebruik het PHP-advies als operationele bron zolang de NVD achterloopt.

Blootstelling per servertype, volgens PHP’s volledige advisory

De GitHub-advisory legt uit waarom het risico per SAPI verschilt. Beslissend is of PHP de opruimfase aan het einde van een verzoek nog uitvoert als het starten van dat verzoek is mislukt.

Samengevat uit GHSA-w8hw-w9fx-j79w. ‘Broncodeanalyse’ betekent dat het PHP-team de code heeft gelezen; het is geen gedemonstreerde exploit.
SAPIWaaromOordeel van het PHP-team
Apache mod_phpDe opruimfase draait altijd, ook na een mislukte start. De body wordt bij de start automatisch geparsed, vóór enige applicatiecode.Uitvoering van code op afstand gedemonstreerd, zonder rol van de applicatie.
PHP-FPMEen worker met een mislukte start wordt weggegooid, waardoor dat vroege pad dicht is. Een later geheugentekort tijdens de applicatie kan nog steeds kapotte toestand achterlaten.Kwetsbaar volgens broncodeanalyse. Geen volledige FPM-exploit getoond.
FrankenPHPGedraagt zich als mod_php: opruimen gebeurt onvoorwaardelijk.Waarschijnlijk aanvalbaar zonder applicatiefout (broncodeanalyse).
LiteSpeed (LSAPI)Gemodelleerd naar FPM.Misbruik via de applicatie waarschijnlijk, niet gevalideerd.

Waarom uploadlimieten het geheugen niet begrenzen

Volgens de advisory kan een multipart-formulierverzoek PHP door zijn geheugen laten raken terwijl het ruim binnen de limieten lijkt te blijven. In grote lijnen: een body zonder bruikbare lengte kan de post_max_size-controle passeren; het aantal headers in één deel is onbegrensd en neemt in het geheugen meer ruimte in dan op de lijn; lege bestandsvelden tellen niet mee voor max_file_uploads, maar PHP bouwt er toch uploadarrays voor. Ook applicatiecode kan die toestand bereiken als gebruikersinvoer een grote allocatie stuurt. We blijven op het niveau dat PHP publiceerde en beschrijven niet hoe je zo’n verzoek maakt.

Wat de fix in PHP verandert

Bij geheugentekort springt PHP niet meer uit het lopende codepad. Op het volgende veilige punt in de engine volgt een ‘zachte’ out-of-memory-fout; loopt het gebruik op tot een tweede, hogere drempel, dan stopt het proces direct. memory_limit blijft werken en de opruimfase ziet geen half opgebouwde toestand meer.

Hardening die na het patchen nog helpt

Volgens PHP verkleinen deze stappen ook op gefixte builds het risico op harde afbrekingen en denial of service. Ze vervangen de update niet.

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. CVE-2026-109618: PHP 8.2–8.5 RCE via OOM corruption — oss-security (Jakub Zelenka, PHP security team)
  4. GHSA-w8hw-w9fx-j79w — CVE-2026-109618 — PHP (GitHub Security Advisory)
  5. Security advisory: critical unauthenticated RCE in PHP (“php2shell”) — University of Toronto Information Security
  6. Notice: php2shell, critical PHP vulnerabilities (status as of 21 October 2026, 20:00 UTC) — Expel
  7. Critical vulnerabilities in PHP require immediate patching (21 October 2026) — CISA
  8. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619 — Google Cloud
  9. CVE-2026-109618 — NVD
  10. PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet — Wiz Research
  11. PHP vulnerability CVE-2026-109618 (reproduces PHP’s advisory) — Inphinit (PHP framework documentation)