CVE-2026-109618 · GHSA-w8hw-w9fx-j79w

CVE-2026-109618: RCE durch Out-of-Memory-Korruption (OOM)

Die Out-of-Memory-Hälfte von PHP2Shell: Ein Angreifer treibt PHP beim Parsen eines Requests in einen Speichermangel, sodass halb initialisierte Daten zurückbleiben, denen PHP später vertraut. Ergebnis: Codeausführung ohne Authentifizierung als Webserver-Benutzer.

Zuletzt geprüft 2026-10-22

Schweregrad

Critical · CVSS 4.0 9.2

Authentifizierung

Nicht nötig

Behoben in

8.5.12 · 8.4.27 · 8.3.36 · 8.2.35

Teil von

PHP2Shell (mit CVE-2026-109619)

Zusammenfassung

PHP bricht bei Speichermangel den aktuellen Kontext mit longjmp() ab. Passiert das, während der Request-Speicher erst teilweise initialisiert ist, liest oder verzweigt der Request-Shutdown später auf ungültigen Daten. Mehrere Multipart-Parsing-Pfade können PHP innerhalb normaler Limits in einen OOM treiben, noch bevor Anwendungscode läuft.

Auswirkung: Codeausführung ohne Authentifizierung als Benutzer des PHP-Web-Workers. Demonstriert: Pre-Auth-RCE auf WordPress, Drupal und Joomla (mod_php, Standardlimits).

Ursache

PHP reagiert auf Speichermangel, indem es einen fatalen Fehler auslöst und mit longjmp() aus dem aktuellen Codepfad springt. Was in diesem Moment halb gebaut war, bleibt halb gebaut.

War Request-Speicher bereits reserviert, aber noch nicht initialisiert, liest oder verzweigt der Request-Shutdown später auf diesen ungültigen Daten. Mehrere Parsing-Pfade für Multipart (Datei-Upload-Formulare) können PHP innerhalb normaler Limits in einen Speichermangel treiben — deshalb muss kein Anwendungscode beteiligt sein.

Von PHP genannte Schwächen: Use-after-free (CWE-416), fehlerhafte Behandlung von Ausnahmezuständen (CWE-755), Zugriff auf einen nicht initialisierten Zeiger (CWE-824) und verwandte CWEs zur Zustandsbehandlung.

Bekannte Angriffspfade

Use-after-free im Upload-Progress-Unserializer

Die Upload-Progress-Verarbeitung dekodiert Session-Daten, bevor die Request-Initialisierung abgeschlossen ist. Ein Allokationsfehler gibt den Request-Heap frei, lässt aber die globale Buchführung des Unserializers stehen; der nächste Request auf dem Worker behandelt vom Angreifer wiederverwendeten Speicher als lebendigen Zustand.

Speicherleck aus der Ferne über PHPSESSID

Nach einem OOM-Abbruch hängt ein Session-ID-Zeiger ins Leere. Ein späterer Multipart-Request URL-kodiert den Speicher, auf den er jetzt zeigt, in das PHPSESSID-Antwort-Cookie — selbst wenn die Anwendung nie eine Session startet.

Das PHP-Advisory und der Wiz-Beitrag gruppieren manche Pfade unterschiedlich. Der Patch behebt das gemeinsame Fehlermuster, die Gruppierung ändert also nichts an dem, was Sie tun müssen.

Betroffene und gepatchte Versionen

BranchAnfälligBehoben in
8.5< 8.5.128.5.12
8.4< 8.4.278.4.27
8.3< 8.3.368.3.36
8.2< 8.2.358.2.35
8.1 · 8.0 · 7.4alleNur Quellcode-Backport
5.4 – 7.3alleKein Fix

Exposition je Server-Setup

Setup…109618Hinweise
Apache + mod_phpRCE bestätigtBeide CVEs mit Standardlimits bis zur RCE bestätigt. Setup mit dem höchsten Risiko.
PHP-FPM (nginx, Apache, Caddy…)AnfälligRCE über den Session-Lebenszyklus auf FPM bestätigt. OOM-Pfad über Codepfade auf Anwendungsebene bestätigt; kein generischer FPM-Exploit veröffentlicht.
FrankenPHP / LiteSpeed LSAPIWahrscheinlichLaut Advisory wahrscheinlich anfällig. Langlebige Worker machen requestübergreifenden Zustand eher relevanter als weniger.
CLI (Cron, Queue-Worker, artisan)Nicht behandeltIn den Advisories nicht behandelt und im Normalbetrieb nicht per HTTP-Request erreichbar. Trotzdem aktualisieren — es ist dasselbe Paket.

CVSS-4.0-Score: 9.2

Vektor: CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

MetrikBedeutung hierWirkung

AV:N

Attack Vector: Network

Über das Internet mit gewöhnlichen HTTP-Requests erreichbar.Erhöht Score

AC:H

Attack Complexity: High

Der Exploit muss auf das Speicherlayout jedes Ziels abgestimmt werden; es ist kein Copy-and-paste mit einem Request.Senkt Score

AT:P

Attack Requirements: Present

Der Erfolg hängt von Einsatzbedingungen ab (SAPI, Limits, Worker-Wiederverwendung), die der Angreifer nicht kontrolliert.Senkt Score

PR:N

Privileges Required: None

Kein Konto, kein Login.Erhöht Score

UI:N

User Interaction: None

Niemand muss etwas anklicken.Erhöht Score

VC:H / VI:H / VA:H

Auswirkung auf das verwundbare System: High

Vollständiger Verlust von Vertraulichkeit, Integrität und Verfügbarkeit auf dem PHP-Server.Erhöht Score

SC:N / SI:N / SA:N

Auswirkung auf Folgesysteme: None

Der Score zählt das Weiterspringen auf andere Systeme nicht mit — in der Praxis ermöglichen gestohlene Zugangsdaten das oft.Senkt Score

Fix und Workarounds

Die Lösung ist ein PHP-Update

Installieren Sie ein gepatchtes Release und starten Sie jeden PHP-Worker neu. Patch-Anleitung →

Wenn Sie nicht sofort aktualisieren können, nennt php.net diese Teilmaßnahmen:

  • memory_limit = -1 so gesetzt, dass Anwendungen es nicht überschreiben können (php_admin_value im FPM-Pool oder in der Apache-Konfiguration), kombiniert mit einem Container- oder cgroup-Speicherlimit.
  • Niedriges post_max_size: 8M ohne Datei-Uploads, 32M mit Uploads; upload_max_filesize darunter halten.
  • Request-Limits am Webserver oder Proxy durchsetzen: dekodierte Größe, Anzahl Felder, Anzahl Multipart-Teile, Anzahl Header, Verschachtelungstiefe.
  • Kein RLIMIT_AS / RLIMIT_DATA verwenden (ulimit -v, systemd LimitAS=) — sie lösen denselben anfälligen Allokationsfehler aus.

Referenzen

Fragen

Ist CVE-2026-109618 ohne Anmeldung ausnutzbar?+

Ja. Die Lücke wird erreicht, während PHP den eingehenden Request parst — vor jeglichem Anwendungscode, Routing oder Authentifizierung.

Behebt das Deaktivieren von session.upload_progress CVE-2026-109618?+

Nein. Diese Einstellung zielt auf bestätigte Pfade von CVE-2026-109619. Die primäre Konfigurationsmaßnahme gegen CVE-2026-109618 ist ein administrativ gesetztes memory_limit = -1 zusammen mit einem cgroup-Speicherlimit — und selbst das ist unvollständig.

Welche Versionen beheben CVE-2026-109618?+

PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35, veröffentlicht am 21. Oktober 2026. Für 7.4, 8.0 und 8.1 gibt es Quellcode-Backports; Distributionen liefern eigene gepatchte Pakete.

Ist PHP-FPM von CVE-2026-109618 betroffen?+

Das Advisory stuft FPM nach Quellcodeanalyse als anfällig ein, und laut PHP Foundation wurde RCE auf FPM über Codepfade auf Anwendungsebene bestätigt. Der direkteste demonstrierte Fall ist Apache mit mod_php bei Standardlimits.

Verwandte Seiten