
PHP 8.5.11 – Kritisch – Remote – UAF – CVE-2026-109619 PHP2Shell. Fataler Backtrace im selben Worker, anschließend INI-Diagnose unter Apache mod_php. Labor vs. 8.5.12. Advisory: RCE abgeleitet.
Jemand im Internet kann mit Ihrer PHP-Site genauso kommunizieren wie ein Browser, ohne Passwort. Auf dem letzten betroffenen PHP 8.5 kann er eine Anfrage mit einem fatalen Fehler sterben lassen und dann eine zweite Anfrage an denselben Worker senden. PHP 8.5 behält einen Backtrace von diesem fatalen Fehler im worker-globalen Speicher, nachdem der Request-Heap verschwunden ist. Die zweite Anfrage liest ihn beim Anwenden eines übrig gebliebenen INI-Flags, bevor die Engine sich selbst zurückgesetzt hat. In diesem Lab tötet diese zweite Anfrage den Apache-Child-Prozess. Die PHP Group zeigte, dass dasselbe Muster zu Remote Code Execution als Web-Worker werden kann.
Klasse: UAF / Crash Reichweite: Remote
PHP 8.5.11 (php:8.5.11-apache) vs. gepatchtes 8.5.12 - php.net
CVE-2026-109619 ist veralteter worker-globaler Zustand. Das Lab pinnt Apache prefork auf einen Child-Prozess, erzeugt einen fatalen Fehler mit fatal_error_backtraces=On und konsumiert ihn dann mit per-dir php_flag auto_detect_line_endings on / report_memleaks off, die vor php_request_startup() angewendet werden. 8.5.11: Producer 200 fatal, Consumer-Verbindung zurückgesetzt, Apache-Log zend_mm_heap corrupted. 8.5.12: dieselbe Zweiphasen-Sequenz bleibt stabil (consumer-ok). RCE als Apache-Worker wird aus der GHSA abgeleitet.
| ID | CVE-2026-109619 |
| Advisory | GHSA-6wmf-4rv5-p3rp |
| Klasse | UAF / Crash (RCE aus Advisory abgeleitet) |
| Reichweite | Remote (unauthentifiziertes HTTP, derselbe Worker) |
| CWE | CWE-416 / CWE-825 |
| CVSS | Kritisch: 9.2 CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H (PHP Group) |
| Produkt | PHP |
| Betroffen | PHP 8.2 vor 8.2.35, 8.3 vor 8.3.36, 8.4 vor 8.4.27, 8.5 vor 8.5.12 (Lab-Pin 8.5.11, Backtrace-Arm ist 8.5) |
| Behoben | 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 (21. Okt. 2026) |
| Auth | keine |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 |
Verwandt: CVE-2026-109618 OOM longjmp (PHP2Shell-Paar).
| Methode | Sink | Privileg |
|---|---|---|
Unauthentifiziertes GET /producer.php, dann GET /consumer.php auf demselben Apache-prefork-Child | 8.5 fatal_error_backtraces wird beim Shutdown nie zurückgesetzt; INI-Diagnose vor php_request_startup() | Verfügbarkeit (im Lab nachgewiesen): tötet diesen Child-Prozess (zend_mm_heap corrupted, Verbindung zurückgesetzt) auf 8.5.11. Integrität (abgeleitet): baumelnder Backtrace-Zeiger; Hersteller zeigte RCE als www-data. Recon (abgeleitet): Offenlegung des übrig gebliebenen Request-Heaps. |
| Dieselbe Zweiphasen-Sequenz auf 8.5.12 | vollständige Zustandsrücksetzung | Geschlossen (im Lab nachgewiesen): Consumer-Body consumer-ok, Worker bleibt stabil. |
error_reporting / display_errors / @ | Warnung konsumiert weiterhin veralteten Zustand | Als Mitigation geschlossen. Auf globalen Zustand wird zugegriffen, bevor PHP entscheidet, ob die Diagnose gemeldet wird. |
FPM-Pool .user.ini | wird nach normaler Initialisierung angewendet | Als dieser frühe Consumer geschlossen. FPM benötigt Frontend PHP_VALUE / PHP_ADMIN_VALUE. Session-Upload-Fortschritt ist ein zweiter bestätigter Hersteller-Arm (mod_php und FPM); dieses Lab verwendete den 8.5-Backtrace-Arm. |
Login, Reverse Shell, eigenes .so | n/a | Geschlossen. Keine RIP-Kontrolle versucht. |
Im Lab nachgewiesen vs. abgeleitet: Same-Worker-UAF/Crash vs. gepatchte Kontrolle ist im Lab nachgewiesen. RCE ist aus GHSA-6wmf-4rv5-p3rp abgeleitet.
Voraussetzungen: Apache apache2handler prefork auf einen Worker gepinnt. PHP 8.5 fatal_error_backtraces=On. Per-dir INI-Diagnose. Offizielles php:8.5.11-apache vs. php:8.5.12-apache.
python3 php-stale-global-uaf-Abraxas-Labs.py
oder cd lab && ./run.sh. Loopback 127.0.0.1:18222 (8.5.11) vs. 127.0.0.1:18223 (8.5.12). Compose-Projekt cve-2026-109619. Witness CVE-2026-109619-UAF-WITNESS. Letzte Zeile:
SUCCESS CVE-2026-109619 vuln-uaf=yes vuln-crash=yes patched-ok=yes sapi=apache2handler pin=same-worker vuln-image=php:8.5.11-apache patched-image=php:8.5.12-apache how=backtrace crash=connection-reset CVE-2026-109619-UAF-WITNESS
Nur autorisiertes Labor. Es kommuniziert über Loopback.
Aktualisieren Sie auf PHP 8.5.12 (oder 8.2.35 / 8.3.36 / 8.4.27). Bis dahin: fatal_error_backtraces=0 unter 8.5 (nur dieser Producer); session.upload_progress.enabled=0 (nur der Session-Zweig); pro Anfrage veraltete INI verwerfen; pm.max_requests=1, wenn Sie es sich leisten können. Es gibt keine vollständige generische Konfigurationsentschärfung.
Abraxas Labs [email protected]