PHP2Shell-Exploits führen shell commands auf honeypots aus
Bei der Ausnutzung von PHP2Shell ist es offenbar gelungen, shell commands auf mit dem Internet verbundenen honeypots auszuführen, also auf Täuschsystemen, die zur Beobachtung von Angriffen dienen. Ein Forscher von Perplexity zeichnete Befehle auf, bei denen wget, curl und das PHP command-line interface verwendet wurden, um über die Ports 80 und 8080 Kontakt mit 162.35.99[.]94 aufzunehmen. Die Anfragen identifizierten den angegriffenen honeypot und in einigen Fällen das Konto, unter dem der Befehl ausgeführt wurde. Es wurden keine heruntergeladenen Dateien einer zweiten Angriffsstufe beobachtet. Daher bleiben Zweck und Fähigkeiten eines möglichen nachfolgenden payload unbekannt.
Die Aktivität betrifft CVE-2026-109618 und CVE-2026-109619, zwei kritische PHP-Schwachstellen, die remote code execution ermöglichen können. Das bedeutet, dass ein Angreifer von einem anderen Ort aus Befehle auf dem betroffenen Host ausführen kann. Beide können sich auf standardmäßige PHP-Konfigurationen auswirken. Cloudflare meldete nach der öffentlichen Bekanntgabe Millionen von Ausnutzungsversuchen, während Defused Cyber von 204.76.203[.]7 ausgehende Sondierungen gegen Palo Alto Networks GlobalProtect-honeypots beobachtete. Diese Adresse wird mit massenhafter Ausnutzung in Verbindung gebracht. Die Anfragen enthielten den PHP-Marker p2s-rider für session upload progress sowie einen Dummy-Upload ohne payload. Dieses Verhalten wurde als Überprüfung auf die Schwachstelle und als Aufbau einer Zielliste bewertet.
Datadog beschrieb den Ausnutzungsprozess als davon abhängig, den verfügbaren Arbeitsspeicher in einer bestimmten Phase gezielt vollständig auszuschöpfen und trotz address space layout randomization (ASLR), einem Schutz, der verändert, wo Daten im Speicher abgelegt werden, nutzbare Speicherstellen zu finden. PHP erstellt bei der Verarbeitung einer Anfrage mehrere Kopien des Namens eines Formularfelds. Ein Angreifer kann einen ungewöhnlich großen Namen verwenden, um einen Fehler bei der Speicherzuweisung auszulösen, während PHP ihn in eine hash table kopiert. Die Anfrage muss klein genug sein, um akzeptiert zu werden, aber so aufgebaut sein, dass die Kopie das konfigurierte Speicherlimit von PHP überschreitet.
ReliaQuest reproduzierte CVE-2026-109618 in einem kontrollierten Labor und veröffentlichte am 22. Oktober 2026 Hinweise zur Erkennung. Der Test erzeugte eine Abfolge in PHP-, Apache- und System-Logs: Eine POST request erhielt einen HTTP-500-Fehler, PHP protokollierte memory exhaustion und heap corruption, und der Apache worker, der die Anfrage verarbeitete, stürzte ab. Hosting-Teams können diese Kombination als mögliches Warnsignal nutzen, statt einen einzelnen Serverfehler als Beweis für eine Ausnutzung zu betrachten.
Palo Alto Networks Unit 42 hat unterdessen eine frühere Schlussfolgerung zurückgezogen, wonach ein Angriff auf eine europäische Regierungsbehörde über die PHP2Shell-Schwachstellen begonnen habe. Unit 42 erklärte, der Angriff sei im Zusammenhang mit einer anfälligen PHP-Anwendung erfolgt, doch es habe nicht bestätigt werden können, dass eine der beiden spezifischen CVEs den initialen Zugriff ermöglicht habe. Diese Korrektur ist wichtig, weil das Verhalten nach der Kompromittierung weiterhin bemerkenswert ist, aber nicht als bestätigtes Eindringen über PHP2Shell dargestellt werden kann.
Bei diesem Vorfall beobachtete Unit 42 innerhalb von zwei Stunden den Zugriff auf hashes von Passwörtern und Geheimnisse für multi-factor authentication sowie einen NT LAN Manager (NTLM) relay tunnel in Active Directory, das Microsoft-System zur Verwaltung organisatorischer Identitäten und Berechtigungen. Der Angreifer versuchte außerdem, Domain Admin privileges zu erlangen. Befehle untersuchten Authentifizierungsdaten, fragten den domain controller über anonyme Lightweight Directory Access Protocol (LDAP) requests ab und suchten nach internen Hosts, privilegierten Gruppen, interaktiven Benutzern und Verbindungen zwischen DNS und Active Directory. Ausgabebereiche verwendeten einheitliche Trennzeichen wie ==SHELLUSER== und ==PASSWD==. Unit 42 bewertete dies als maschinenlesbare Formatierung für ein agentic AI system, das Aufgabenpakete planen und ausführen kann.
Unabhängig davon berichtete CYFIRMA über PHP2Shell-Scans mit geringem Volumen, die von 21 kompromittierten Knoten aus gegen 216 ungepatchte oder nur teilweise geschützte Hosts gerichtet waren. Die identifizierten Systeme befanden sich in den USA, Japan, Südkorea, Thailand, Indonesien, Australien, Taiwan, Indien, Singapur, den Vereinigten Arabischen Emiraten, Saudi-Arabien und der EU. Sie gehörten zu Behörden sowie zu den Bereichen Finanzen, Logistik, Luftfahrt, Fertigung und Online-Transaktionsdienste. Laut CYFIRMA wurden Knoten ausgetauscht oder aufgegeben, sobald Sperren oder rate limits auftraten. Dadurch sank die Wahrscheinlichkeit, dass einfache Schwellenwerte für das Datenvolumen die Kampagne erkennen würden.
CYFIRMA schrieb diese Scan-Aktivitäten mit mittlerer Sicherheit einem koreanischsprachigen Akteur zu, der mit dem Umfeld der Lazarus Group in Verbindung steht. Die Bewertung stützte sich auf Aktivitäten in einem geschlossenen I2P-Anonymitätsnetzwerk, auf Infrastruktur, die zuvor mit der Ausnutzung von Webressourcen in Verbindung gebracht worden war, auf sprachliche Merkmale sowie auf die Vorgeschichte der Gruppe bei der Kompromittierung von PHP- und WordPress-Servern, um web shells zu installieren oder sie für command-and-control traffic zu verwenden. Laut CYFIRMA diskutierten die Akteure über die Priorisierung von Zielen und passten öffentlich verfügbare Exploits an. Der Bericht beschrieb jedoch Scans und Vorbereitungen und keine bestätigte Ausnutzung der 216 aufgeführten Hosts.
Ein drittes Problem, CVE-2026-115560, wurde ebenfalls von der PHP Foundation offengelegt. remote code execution erfordert eine ungewöhnliche Kombination aus Anwendungsverhalten und Konfiguration: session.serialize_handler muss zunächst php_binary oder php_serialize verwenden, die Anwendung muss den Wert vor dem Aufruf von session_start() über ini_set() auf php ändern, und session upload progress muss aktiviert bleiben. Anwendungen, die den serialization handler während der Ausführung nicht ändern, können upload progress aktiviert lassen. Die PHP Foundation erwartet, dass das Problem im regulären release cycle behoben wird.
Xint hat einen Scanner für eine Gefährdung durch PHP2Shell veröffentlicht und erklärt, remote code execution könne jedes PHP-Skript unabhängig von der Anwendung betreffen. Dies gelte auch für Anwendungen, die eine Decodierung über Funktionen wie session_start() und unserialize() durchführen. Internetweite Messungen von Bitsight ergaben, dass fast 37 Millionen öffentlich erreichbare Systeme PHP oder zugehörige Software ausführen, wobei die größten Konzentrationen in den USA, Deutschland, Frankreich, den Niederlanden und Japan liegen. Da sich diese Schwachstellen in der PHP runtime selbst befinden, beseitigen Änderungen am Anwendungscode, die Installation eines plugin-Updates oder das Vertrauen auf eine web application firewall die zugrunde liegende Schwachstelle nicht. PHP muss auf dem Host aktualisiert werden.
Website-Betreiber sollten daher die von jeder Website und Anwendung verwendete PHP runtime überprüfen und nicht nur WordPress oder dessen Erweiterungen aktualisieren. Für Betreiber, die die Verwaltung übernehmen lassen möchten, bietet AEU Hosting vollständig verwaltetes und durchgehend abgesichertes WordPress-Hosting an. Unabhängig davon, ob PHP selbst verwaltet oder von einem Hosting-Anbieter bereitgestellt wird, bestehen die unmittelbaren Prioritäten darin, PHP zu aktualisieren und die Logs auf die von den Forschenden dokumentierte Fehlerabfolge und die beschriebenen Sondierungsmuster zu prüfen.