
Proof-of-Concept (PoC)-Exploit für php2shell (CVE-2026-109618 / CVE-2026-109619), das Remote-Code-Execution in verwundbaren PHP-Umgebungen demonstriert. Ausschließlich für Sicherheitsforschung und Bildungszwecke.
Kritische Warnmeldung (CVSS v4.0: 9.2 – Kritisch): Am 20. Oktober sind Details zu zwei Pre-Auth-Remote-Code-Execution-Schwachstellen (RCE) im PHP-Kern vor der koordinierten Offenlegung online durchgesickert. Die Ausnutzung ermöglicht die Ausführung beliebiger Befehle direkt vom Webserver aus.
session-upload-progress-counters.patch)php2shell bezeichnet zwei kritische Schwachstellen (CVE-2026-109618 & CVE-2026-109619), die Kernfunktionalität von PHP betreffen. Der primär demonstrierte Angriffsvektor ist ein Heap-Use-after-free (UAF) im Upload-Fortschrittsmechanismus der PHP-Kern-Session, der zur Ausführung beliebigen Codes führt (zend_call_function / system()).
PHPs Upload-Fortschritts-Handler (php_session_rfc1867_callback in ext/session/session.c) speichert zwei rohe zval *-Bucket-Zeiger (post_bytes_processed und current_file_bytes_processed) direkt in aktiven HashTable-Strukturen.
Während der Anfrageverarbeitung:
POST-Anfrage aktiviert die Fortschrittsverfolgung mit Standardkonfigurationswerten (session.upload_progress.enabled = 1).zend_hash_update() zerstört den vorherigen Datenbaum mithilfe des Destruktors zval_ptr_dtor und gibt den Speicherblock frei.zend_fcall_info- und zend_internal_function-Strukturen umgelenkt.zend_call_function() auf, was zur Ausführung beliebiger Systembefehle führt.php-src-Builds (einschließlich Versionen 8.4.4 und 8.2.34).--syms) zwischen zval_ptr_dtor und zend_call_function, um sich an distributionsspezifische Binärlayouts anzupassen (z. B. Debian Bookworm, Ubuntu Noble, Ubuntu Jammy).Die folgende Tabelle fasst die von CVE-2026-109618 und CVE-2026-109619 betroffenen PHP-Versionen sowie deren Support- und Patch-Status zusammen:
| PHP-Zweig | Status | Betroffene Versionen | Behobene / Sichere Version | Hinweise |
|---|---|---|---|---|
| PHP 8.5 | Unterstützt (Aktiv) | < 8.5.12 | 8.5.12 | Notfall-Sicherheitsrelease veröffentlicht |
| PHP 8.4 | Unterstützt (Aktiv) | < 8.4.27 | 8.4.27 | Notfall-Sicherheitsrelease veröffentlicht |
| PHP 8.3 | Unterstützt (Aktiv) | < 8.3.36 | 8.3.36 | Notfall-Sicherheitsrelease veröffentlicht |
| PHP 8.2 | Unterstützt (Nur Sicherheit) | < 8.2.35 | 8.2.35 | Notfall-Sicherheitsrelease veröffentlicht |
| PHP 8.1 | End of Life (EOL) | Alle 8.1.x-Versionen | Kein offizieller Patch (EOL) | session.upload_progress.enabled = Off setzen oder ELS/Distro-Backports verwenden |
| PHP 8.0 | End of Life (EOL) | Alle 8.0.x-Versionen | Kein offizieller Patch (EOL) | Offizieller Support beendet; Konfigurationsmaßnahme ist zwingend erforderlich |
| PHP 7.x | End of Life (EOL) | Alle 7.0 - 7.4-Versionen | Kein offizieller Patch (EOL) | Kernlogik von ext/session verwundbar; dringende Maßnahme oder Upgrade erforderlich |
| PHP 5.x | End of Life (EOL) | 5.4.0+ (mit RFC1867-Fortschrittsverfolgung) | Kein offizieller Patch (EOL) | Offizieller Support beendet; Host isolieren oder Upload-Fortschritt deaktivieren |
[!WARNING] PHP 8.1 und ältere End-of-Life-Versionen (EOL) erhalten keine offiziellen Sicherheitspatches von der PHP Foundation. In diesen Umgebungen sofort
session.upload_progress.enabled = Offanwenden oder PHP aus dem Quellcode mit dem bereitgestellten C-Quellcode-Patch neu kompilieren.
Die Ausnutzung von php2shell äußert sich typischerweise in anomalen Kindprozessen, die direkt von PHP-Worker-Prozessen (php-fpm, php-cgi, php-cgi.exe, httpd, apache2) gestartet werden.
Überwachen und alarmieren Sie bei PHP-Worker-Prozessen, die Folgendes ausführen:
/bin/sh, /bin/bash, cmd.exe, powershell.exepython, perlcurl, wget, nc, certutil.exe/dev/tcp/, fsockopen, mkfifowhoami, id, uname -a, ipconfigFür Linux-basierte Webumgebungen ohne Endpoint-Detection-Agent können Tools wie Florian Roths kostenloser process-watcher im Beobachtungsmodus betrieben werden, um ungewöhnliches Starten von Kindprozessen in Echtzeit zu melden.