PHP2Shell: Ist Ihre PHP-Infrastruktur gefährdet?

Ein praxisorientierter SOC-Leitfaden, mit dem Sie Ihre PHP-Systeme auf Schwachstellen prüfen, Ihre Gefährdung bewerten und die richtigen Schritte zur Absicherung Ihrer Infrastruktur ergreifen.

PHP2Shell: Ist Ihre PHP-Infrastruktur gefährdet?
Kurz gefasst: Was passiert ist und was zu tun ist

Zwei kritische Schwachstellen, CVE-2026-109618 und CVE-2026-109619 (CVSS v4.0: 9.2, Bewertung von PHP), betreffen die PHP-Laufzeitumgebung und können eine Remotecodeausführung ohne Authentifizierung ermöglichen. PHP hat am 21. Oktober 2026 Fixes veröffentlicht: 8.2.35, 8.3.36, 8.4.27 und 8.5.12. Eine dritte Schwachstelle, CVE-2026-115560, die am 23. Oktober offengelegt wurde, ist in diesen Releases weiterhin ungepatcht und nur unter bestimmten Bedingungen ausnutzbar.

Vorrangig gilt es, die PHP-Version zu ermitteln, die tatsächlich den Webverkehr bedient, das korrigierte Release einzuspielen und die PHP-Prozesse neu zu starten oder neu zu laden. Eine Prüfung allein mit php -v reicht nicht aus: CLI, PHP-FPM und das Apache-PHP-Modul können unterschiedliche Versionen ausführen. Beziehen Sie Container, Testumgebungen und Produkte, die PHP mitliefern, in Ihre Inventarisierung ein.

Achten Sie parallel auf Anzeichen einer Ausnutzung: Webprozesse, die Shells starten, verdächtige Multipart-Anfragen, Abstürze von Workern und neue PHP-Dateien in Upload-Verzeichnissen.

Kurz gefasst: Was passiert ist und was zu tun ist

Warum das wichtig ist

Laut W3Techs wurde PHP mit Stand 21. Oktober 2026 von 69,2 % der Websites eingesetzt, deren serverseitige Sprache bekannt ist. Hadrian nutzte diese Statistik in seiner PHP2Shell-Analyse, um das mögliche Ausmaß der Gefährdung zu veranschaulichen. Der Prozentsatz bedeutet nicht, dass 69,2 % der Websites verwundbar sind; die tatsächliche Gefährdung hängt von der installierten Version, den Paketen des Distributors und der Systemkonfiguration ab.

Die Gefährdung ist nicht nur theoretisch. Wiz Research hat eine Codeausführung ohne Authentifizierung auf den aktuellen offiziellen Container-Images von WordPress, Drupal und Joomla demonstriert. Standard-CMS-Installationen sind damit direkte Ziele, ohne dass eine besondere Konfiguration erforderlich ist.

Was wir mit Stand 27. Oktober über die Ausnutzung wissen

Amazon Threat Intelligence beobachtete in seinen MadPot-Honeypots einen Versuch am 17. Oktober, also bevor die Schwachstellen und Patches veröffentlicht wurden. Die rückwirkende Auswertung der Logs sollte daher ab dem 17. Oktober 2026 beginnen. Anschließend wurden Scan- und Ausnutzungsversuche gemeldet, und PoCs wurden öffentlich verfügbar.

Am 24. Oktober erschien die erste hochwertige öffentliche Bestätigung einer erfolgreichen Ausnutzung: Adel Karimi, Detection & Response Lead bei Perplexity, verzeichnete in seinen Honeypots 35 Shells, die von zwei IP-Adressen aus gestartet wurden, auf Apache mod_php mit PHP 8.4.26, über eine vierstufige HTTP-Kette, die einem öffentlichen PoC entsprach. Zu den Belegen gehörte ein Speicherabbild von 800 KiB, das Karimi zu dem Schluss führte: “bestätigte RCE mit verwertbarer Offenlegung von Speicherinhalten”. Der Befund wurde von Marcus Hutchins (Expel) unabhängig validiert und als “mit Abstand die hochwertigste Bestätigung einer Ausnutzung in freier Wildbahn bisher” bezeichnet. Karimi betonte jedoch, dass der Test auf einem bewusst günstigen mod_php-Profil mit nur einem Worker lief und keine Aussage über die Zuverlässigkeit bei anderen Worker-Anzahlen, Builds oder Anwendungen erlaubt.

Am 26. Oktober nahm die CISA beide CVEs in ihren Katalog Known Exploited Vulnerabilities (KEV) auf, mit einer Frist zur Behebung bis zum 29. Oktober für US-Bundesbehörden. Unabhängig davon meldete CYFIRMA mit mittlerer Zuverlässigkeit eine dem Lazarus-Umfeld zugeschriebene Scan- und Sondierungskampagne, die auf 216 ungepatchte oder nur teilweise abgesicherte PHP-Hosts abzielte, Sondierungsaktivität, keine bestätigte Ausnutzung.

Der technische Teil: verwundbare Systeme identifizieren und bereinigen
1. Alle Orte erfassen, an denen PHP läuft
  • Prüfen Sie die CMDB, Schwachstellenscanner, Serverkonfigurationen, Repositorys und Container-Images.

  • Berücksichtigen Sie VMs, App Service, Kubernetes, Container, Staging-/Testumgebungen, On-Premises-Anwendungen sowie Produkte/Appliances von Drittanbietern, die PHP mitliefern.

  • Priorisieren Sie aus dem Internet erreichbare Systeme, insbesondere solche mit Apache mod_php, sowie Anwendungen, die Uploads annehmen.

  • Nutzen Sie den Header X-Powered-By oder externes Fingerprinting nur als Anhaltspunkte, sie bestätigen nicht die tatsächliche Laufzeitversion.

2. Die Version prüfen, die den Webverkehr bedient

Verlassen Sie sich nicht allein auf die CLI-Version. Die von php -v angezeigte Version kann von der von PHP-FPM oder vom Apache-Modul abweichen. Prüfen Sie sie getrennt:

Prüfen Sie bei Paketen, die von Linux-Distributionen ausgeliefert werden, ob ein Backport des Patches existiert. Eine scheinbar ältere Versionsnummer bedeutet nicht automatisch, dass das Paket verwundbar ist; ziehen Sie das Changelog der Distribution zu Rate.

3. Den Ausführungsmodus (SAPI) bestimmen - das Risiko unterscheidet sich

Das Risiko ist nicht bei jeder Installation gleich. Die Tabelle fasst zusammen, was von Forschenden bestätigt wurde und was sich aus der Codeanalyse ergibt. Wenn mod_php geladen ist und öffentliche Anwendungen bedient, fällt das System in die Kategorie mit sehr hohem Risiko.

4. Den Patch einspielen und bestätigen, dass der aktualisierte Code läuft

Aktualisieren Sie auf das korrigierte Release Ihres Versionszweigs. Führen Sie anschließend gemäß Ihren betrieblichen Verfahren einen Neustart oder ein Reload der PHP-FPM/Apache-Dienste und der betreffenden Worker durch. Prüfen Sie die Version erneut über den Pfad, den die Webanwendung nutzt. Wird das Paket aktualisiert, ohne die Prozesse neu zu starten, können bestehende Worker weiterhin den verwundbaren Code ausführen.

Prüfen Sie bei PHP 8.1 und älter, ob Ihr Distributor dokumentierte zurückportierte Patches bereitstellt. Gibt es keinen unterstützten Fix, planen Sie eine Migration. Bauen Sie Container-Images auf Basis aktualisierter Basis-Images neu und stellen Sie sie erneut bereit; eine Aktualisierung des Hosts aktualisiert PHP im Container nicht.

5. INI-Überschreibungen pro Anfrage prüfen (Consumer für CVE-2026-109619)

Warnungen, die beim Anwenden verzeichnisbezogener INI-Einstellungen erzeugt werden, können in der Kette von CVE-2026-109619 als “Consumer” fungieren. Suchen Sie nach php_value-, php_flag- und php_admin_*-Direktiven in .htaccess und der Apache-Konfiguration sowie nach PHP_VALUE / PHP_ADMIN_VALUE, die nginx an FPM übergibt. Das Ausblenden von Fehlern schützt Sie nicht, da auf den globalen Zustand zugegriffen wird, bevor PHP entscheidet, ob die Meldung angezeigt wird. Verlagern Sie die Konfiguration in php.ini oder den FPM-Pool.

6. CVE-2026-115560 vorübergehend eindämmen

CVE-2026-115560 ist ein separater Angriffsvektor, der am 23. Oktober offengelegt wurde und mit Stand 27. Oktober weiterhin ungepatcht ist — PHP wird das vollständige Advisory mit den betroffenen Versionen und dem CVSS-Score voraussichtlich mit dem nächsten Release veröffentlichen, für das noch kein Datum angekündigt ist. Laut dem Hinweis von PHP besteht das Risiko nur, wenn drei Bedingungen gleichzeitig erfüllt sind:

1. session.serialize_handler ist php_binary oder php_serialize;

2. die Anwendung stellt den Handler vor session_start() über ini_set() auf php um; und

3. session.upload_progress.enabled bleibt aktiviert.

Anwendungen, die den Session-Handler nicht zur Laufzeit umstellen, sind über diesen spezifischen Vektor nicht gefährdet. Vorübergehende Maßnahme: Setzen Sie session.upload_progress.enabled=0 in php.ini oder .user.ini oder über die Konfiguration des PHP-FPM-Pools. Testen Sie die Auswirkungen auf die Upload-Funktionalität, laden Sie anschließend die Dienste neu und bestätigen Sie die wirksame Einstellung. Diese Maßnahme ersetzt nicht die Patches für CVE-2026-109618 und CVE-2026-109619.

7. Kompensierende Maßnahmen und ihre Grenzen

Wenn Sie nicht sofort patchen können, ziehen Sie eine vorübergehende Isolierung des exponierten Systems sowie Maßnahmen in Betracht, die den Multipart-Datenverkehr reduzieren. Jede Änderung muss genehmigt, getestet und überwacht werden. WAF-Regeln können einen Teil der Versuche abfangen, beheben die Schwachstelle in der Laufzeitumgebung jedoch nicht und sind gegen formal gültige Anfragen nur begrenzt wirksam.

Betrachten Sie Folgendes nicht als Behebung:

  • das Ausblenden von Fehlern (display_errors=Off, error_reporting, log_errors=Off oder der @-Operator)- der Angriff erfolgt, bevor der Anwendungscode ausgeführt wird;

  • einen Wartungsmodus des CMS;

  • WAF-Regeln auf Basis von Payload-Signaturen (die bösartigen Anfragen sind formal gültig).

Das Fehlen von Fehlern in den Logs beweist nicht, dass das System nicht angegriffen wurde. Testen Sie Produktivsysteme nicht mit öffentlichen PoCs: Viele sind unzuverlässig, manche können unsicheren Code enthalten, und ein negatives Ergebnis beweist nicht, dass der Server nicht verwundbar ist.

Erkennung und Reaktion

Parallel zum Patchen empfiehlt das SOC eine rückwirkende Überprüfung exponierter Systeme mindestens ab dem 17. Oktober 2026, soweit Telemetrie vorhanden ist. Korrelieren Sie verdächtige Zugriffe mit Prozessausführungen, Dateiänderungen, ausgehenden Verbindungen und Authentifizierungsereignissen. Das Fehlen von Telemetrie oder Alarmen beweist nicht, dass keine Ausnutzung stattgefunden hat.

1. Prozesstelemetrie / EDR

Lösen Sie einen Alarm für jeden von php-fpm, php-cgi, httpd oder apache2 gestarteten Prozess aus, der eine Shell oder Download-Tools (sh, bash, dash, curl, wget, nc, python, perl) startet. Im Normalbetrieb ist dieses Verhalten selten und sollte als mögliche Kompromittierung behandelt werden.

2. Web- und PHP-Logs

• Häufungen von POST-Anfragen vom Typ multipart/form-data aus derselben Quelle, insbesondere mit einer ungewöhnlichen Anzahl von Teilen oder Headern.

• Tief verschachtelte Feldnamen oder Anfragen, die PHP_SESSION_UPLOAD_PROGRESS enthalten, auch an Endpunkte, die keine Uploads annehmen sollten.

• Wiederholte HTTP-500-Antworten, Abstürze oder unerwartete Neustarts von PHP-Workern.

• Fehlerhafte oder ungewöhnlich lange PHPSESSID-Cookies und wiederholte Fehler (SIGSEGV, AH00052, zend_mm_heap corrupted, "Allowed memory size … in Unknown on line 0") in den PHP-, Apache- oder FPM-Logs.

3. Dateisystem und Persistenz

• Neue oder geänderte PHP-Dateien in Upload-, Cache- oder über das Web erreichbaren Verzeichnissen; prüfen Sie Zeitstempel, Eigentümer und Inhalt.

• Neue Cronjobs für den Benutzer des Webservers, kürzlich hinzugefügte SSH-Schlüssel oder Konten; ungewöhnliche ausgehende Verbindungen, die von Web-Workern aufgebaut werden.

4. So nutzen Sie Indicators of Compromise (IOCs)

Behandeln Sie IOCs als Ausgangspunkte für die Korrelation, nicht als eigenständigen Beweis: Einige Adressen können zu Anonymisierungsinfrastruktur gehören oder in legitimem Datenverkehr auftauchen. Ein Treffer bestätigt keine Kompromittierung und rechtfertigt keine automatische Blockierung. Validieren Sie Quelle, Datum und Kontext jedes Indikators und gleichen Sie ihn mit Host- und Netzwerktelemetrie ab.

Reaktion auf Sicherheitsvorfälle: bei glaubwürdigen Anzeichen einer Kompromittierung

1. Isolieren Sie das betroffene System und beschränken Sie den Netzwerkzugriff, ohne Beweise zu vernichten.

2. Sichern Sie Logs und, wenn möglich, ein Festplatten-Image sowie relevante Speicher-/Prozessartefakte.

3. Rotieren Sie alle Zugangsdaten, auf die der Webprozess zugreifen kann: Datenbankpasswörter, API-Schlüssel, Tokens und .env-Secrets.

4. Setzen Sie die Untersuchung auf Persistenz, Exfiltration und laterale Bewegung fort. Ein reines PHP-Update entfernt nicht den Zugang eines Angreifers, wenn das System bereits kompromittiert war.

5. Eskalieren Sie an das SOC-/IR-Team und prüfen Sie die geltenden Meldepflichten (DSGVO, NIS2).


Referenztabellen

Betroffene und korrigierte Versionen

Die beiden behobenen CVEs im Vergleich
Empfohlener Maßnahmenplan

Quellen und Referenzen


[1] PHP Security Advisory — GHSA-w8hw-w9fx-j79w (CVE-2026-109618) — https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w

[2] PHP Security Advisory — GHSA-6wmf-4rv5-p3rp (CVE-2026-109619) — https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp

[3] PHP official notice — Session upload progress (CVE-2026-115560), 23. Okt. — https://www.php.net/archive/2026.php#2026-10-23-1

[4] Amazon Threat Intelligence — MadPot observations, 17.–21. Okt. 2026 — https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/

[5] Cloudflare — PHP2Shell: WAF mitigations and their limits — https://blog.cloudflare.com/php-vulnerabilities-waf-protection/

[6] CISA — Critical Vulnerabilities in PHP Require Immediate Patching — https://content.govdelivery.com/accounts/USDHSCISA/bulletins/42ff5ac

[7] VulnCheck — exploit research update, 23. Okt. 2026 — https://www.vulncheck.com/blog/php2shell-vulnerabilities

[8] Wiz Research — PHP2Shell technical disclosure (RCE auf CMS-Containern) — https://www.wiz.io/blog/php2shell-php-rce

[9] Censys — PHP2Shell services (dynamische, indikative Daten) — https://php2shell.censys.com/

[10] Red Hat — RHSB-2026-013 (Pakete/Distributionen) — https://access.redhat.com/security/vulnerabilities/RHSB-2026-013

[11] AWS Security Blog — WAF mitigating controls, 21. Okt. 2026 — https://aws.amazon.com/blogs/security/using-aws-waf-to-apply-mitigations-for-php2shell-rce-vulnerabilities-cve-2026-109618-and-cve-2026-109619/

[12] Recorded Future News — exploitation attempts and corrections (inkl. der Revision von Sophos) — https://therecord.media/php-php2shell-exploitation-attempts-pocs

[13] Unit 42 / Palo Alto Networks — PHP2Shell Threat Brief (aktualisiert, Rücknahme der Zuordnung) — https://unit42.paloaltonetworks.com/cve-2026-109618-cve-2026-109619/

[14] SecurityWeek — PHP2Shell Exploitation Moves From Probes to Working Shells (35 Shells in einem Honeypot) — https://www.securityweek.com/php2shell-exploitation-moves-from-probes-to-working-shells/

[15] securityonline.info — PHP2Shell added to CISA KEV; probing campaign attributed to Lazarus (CYFIRMA) — https://securityonline.info/php2shell-cisa-kev-confirmed-rce-dprk/

[16] The Hacker News — Wordfence IOC lists and the Potassium botnet (Sekundärquelle) — https://thehackernews.com/2026/10/php2shell-exploit-attempts-hit-millions.html

[17] SOCRadar — exploitation report / observed infrastructure — https://socradar.io/blog/php2shell-cve-2026-109618-cve-2026-109619/

[18] W3Techs — Usage statistics and market share of PHP (Statistik mit Stand 21. Okt. 2026) — https://w3techs.com/technologies/details/pl-php

BleepingComputer — PHP2Shell security flaws now successfully exploited in the wild (RCE im Honeypot, 26. Okt.) — https://www.bleepingcomputer.com/news/security/php2shell-security-flaws-now-sucessfully-exploited-in-the-wild/

Cloud image

30 Tage Cyberabwehr auf Unternehmensniveau

Machen Sie den Schritt in die Zukunft der Cybersicherheit mit vollem Zugriff auf eine einheitliche, intelligente Plattform — 30 Tage kostenlos. Stärken Sie Ihr Sicherheitsteam mit:

  • Fortschrittlichem SIEM für Echtzeit-Transparenz, intelligente Alarmierung und tiefgehende Forensik in Cloud-, On-Premises- und Hybridumgebungen

  • Kontinuierlichem Schwachstellenmanagement, um Risiken über alle IT-Ressourcen hinweg zu erkennen, zu priorisieren und zu beheben

  • Live-Cyber-Bedrohungsaufklärung, direkt in Ihre Arbeitsabläufe integriert, mit globalen Erkenntnissen und Angreiferprofilen

  • KI-gestützter Bedrohungserkennung, die aus Ihrer Umgebung lernt, Alarme in verständlicher Sprache erklärt und nächste Schritte vorschlägt

  • Integrierter Konformitätsbereitschaft für NIS2, DSGVO, ISO 27001 und mehr, mit automatisierter Berichterstellung und Audit-Werkzeugen

Ob Sie ein schlankes SOC oder ein umfassendes Sicherheitsteam auf Unternehmensebene leiten – diese Plattform gibt Ihnen die Werkzeuge an die Hand, um schneller zu erkennen, klüger zu reagieren und sich wandelnden Bedrohungen voraus zu bleiben – ganz ohne Komplexität.

Erleben Sie Schutz auf Unternehmensniveau, optimierte Arbeitsabläufe und vollständige Kontrolle.

Ihr 30-tägiger Vorsprung beginnt jetzt.

Schalten Sie Ihre 30-tägige kostenlose Testphase frei