Auf einen Blick
- Schwachstellen:
CVE-2026-109618undCVE-2026-109619, öffentlich bekannt als PHP2Shell, veröffentlicht vom PHP-Sicherheitsteam am 21. Oktober 2026. - Schweregrad: kritisch, jeweils mit 9.2 (CVSS v4.0) bewertet. Beide können Remotecodeausführung ohne Authentifizierung ermöglichen.
- Betroffen: PHP-Installationen, die Webanfragen verarbeiten. Die Forscher fanden betroffene Versionen bis zurück zu PHP 5.4.
- Behebung: PHP aktualisieren. Laut PHP-Projekt gibt es keine vollständigen Schutzmaßnahmen; ein Update ist die einzige sichere Option.
Worum es bei den Schwachstellen geht
Beide Fehler sind Speichersicherheitslücken in der PHP-Laufzeitumgebung, nicht in WordPress, Drupal, Laravel oder anderen darauf aufbauenden Anwendungen. Eine Website kann auch dann angreifbar sein, wenn ihr eigener Code und ihre Plugins vollständig aktuell sind.
- Speicherbeschädigung bei Speichermangel,
CVE-2026-109618: Geht der Speicher aus, kann PHP unterbrochen werden, während interne Anfragedaten erst teilweise initialisiert sind. Die Bereinigung nach der Anfrage kann diese ungültigen Daten dann als gültig behandeln. - Veralteter Anfragezustand,
CVE-2026-109619: Interner Zustand, der zu einer Anfrage gehört, kann länger bestehen als der zugehörige Speicher. Eine spätere Anfrage, die derselbe PHP-Worker verarbeitet, kann diesen veralteten Zustand verwenden, wodurch Worker-Speicher offengelegt oder Code ausgeführt werden kann.
Die Forscher demonstrierten Remotecodeausführung ohne Authentifizierung gegen WordPress und Drupal sowie bei der ersten Schwachstelle gegen Joomla. Auch eine minimale „Hello World“-Anwendung auf einer betroffenen Laufzeitumgebung kann angreifbar sein.
Wer betroffen ist
Laut PHP-Sicherheitshinweis betreffen die Schwachstellen alle PHP-Installationen, die Webanfragen verarbeiten, darunter PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed. Apache mit mod_php birgt das höchste Risiko: Ein demonstrierter Exploit löst den Angriff mit einer nicht authentifizierten Anfrage aus, noch bevor Anwendungscode ausgeführt wird.
PHP 8.1 und älter erhalten keine Updates mehr vom PHP-Projekt. Minimale Quellcode-Backports für PHP 7.4, 8.0 und 8.1 sind im Sicherheitshinweis verlinkt, ältere Laufzeitumgebungen sollten jedoch am besten auf eine unterstützte Version umgestellt werden.
Gepatchte Versionen
Frühere Versionen jedes unterstützten Zweigs sind als anfällig zu betrachten.
| PHP-Zweig | Anfällig | Behoben in |
|---|---|---|
| 8.5 | Älter als 8.5.12 | 8.5.12 |
| 8.4 | Älter als 8.4.27 | 8.4.27 |
| 8.3 | Älter als 8.3.36 | 8.3.36 |
| 8.2 | Älter als 8.2.35 | 8.2.35 |
PHP 8.2 erreicht am 31. Dezember 2026 das Ende seiner Lebensdauer.
Distributionspakete
Linux-Distributionen haben die Patches vorab erhalten und veröffentlichen gepatchte Pakete unter eigenen Versionsnummern. Ein Distributionspaket kann gepatcht sein, auch wenn seine Version älter aussieht als das Upstream-Release. Unter Ubuntu 24.04 LTS lautet das gepatchte Paket zum Beispiel 8.3.6-0ubuntu0.24.04.13, nicht 8.3.36.
| Ubuntu-Version | Paket | Gepatchte Version |
|---|---|---|
| 26.04 LTS | php8.5 | 8.5.4-0ubuntu1.5 |
| 24.04 LTS | php8.3 | 8.3.6-0ubuntu0.24.04.13 |
| 22.04 LTS | php8.1 | 8.1.2-1ubuntu2.28 |
Die genauen Paketversionen finden Sie im Sicherheitshinweis Ihrer Distribution. Der PHP-Sicherheitshinweis fordert außerdem Nutzer des remirepo-Repositorys auf, auf Distributionspakete umzusteigen oder aus dem Quellcode zu kompilieren, da dieses Repository am Veröffentlichungstag keine Updates bereitstellte.
Vorläufige Schutzmaßnahmen
Wenn Sie nicht sofort aktualisieren können, nennt der PHP-Sicherheitshinweis Einstellungen, die das Risiko über bestimmte Angriffswege verringern. Sie machen eine Installation nicht sicher und müssen in php.ini, im PHP-FPM-Pool oder in der Serverkonfiguration gesetzt werden, gefolgt von einem Neustart aller PHP-Worker.
- Session-Upload-Fortschritt deaktivieren:
session.upload_progress.enabled = 0. Verlassen Sie sich nicht aufini_set()oder.user.iniDateien. - Das PHP-Speicherlimit mit
memory_limit = -1, so gesetzt, dass Anwendungen es nicht überschreiben können, aufheben und stattdessen ein Speicherlimit auf Container- oder cgroup-Ebene verwenden. Verwenden Sie nichtRLIMIT_ASoderRLIMIT_DATA; diese können den anfälligen Codepfad auslösen. - Anfragegröße begrenzen, zum Beispiel
post_max_size = 8M, oder32Mbei erforderlichen Uploads, und Anfragelimits am Webserver oder Proxy durchsetzen. - Unter PHP 8.5 setzen Sie
fatal_error_backtraces = 0.
Das Ausblenden von Fehlern hilft nicht. Betrachten Sie diese Einstellungen als kurze Überbrückung bis zum Update, nicht als Lösung.
Web Application Firewalls
Cloudflare hat bereits vor der öffentlichen Bekanntgabe verwaltete WAF-Regeln für PHP2Shell bereitgestellt, auch im kostenlosen Tarif. Eine WAF ist eine nützliche zusätzliche Schutzschicht, während Sie aktualisieren, doch Angreifer wurden dabei beobachtet, wie sie Payloads verändern, um einer Erkennung zu entgehen, und ein Update von Website-Code oder Plugins allein behebt keine Schwachstelle in der Laufzeitumgebung. Aktualisieren Sie PHP auch dann, wenn eine WAF im Einsatz ist.
Nach dem Update
- PHP neu starten: Starten Sie PHP-FPM, Apache oder den PHP-Anwendungsserver neu, damit jeder Worker den korrigierten Code lädt.
- Die Laufzeitumgebung prüfen, die die Website ausliefert: Die PHP-Version auf der Kommandozeile kann sich von der Version unterscheiden, die Webanfragen verarbeitet, und auf Servern laufen oft mehrere PHP-Versionen parallel.
- Alle Server und Hosting-Konten prüfen: Staging-Websites, alte Installationen und Zweitserver werden leicht übersehen.
- Limits überprüfen: Der Fix führt ein festes Speicherlimit ein, das den Prozess bei Erreichen beendet; prüfen Sie daher die Einstellungen für Speicher und Anfragegröße im Hinblick auf legitime, ressourcenintensive Anfragen.
Bitten Sie bei Managed Hosting Ihren Anbieter um Bestätigung, dass die gepatchte Laufzeitumgebung im Einsatz ist.
Anzeichen, denen Sie nachgehen sollten
Die Forscher nennen Signale, die eine genauere Betrachtung verdienen. Für sich genommen beweisen sie nicht, dass ein Server angegriffen wurde.
- Cookies namens
PHPSESSIDmit ungewöhnlicher Größe oder fehlerhaftem Format. - Multipart-Anfragen, auf die Fehler wegen des Speicherlimits oder wiederholte Antworten mit HTTP 500 folgen.
- Unerklärliche Abstürze von PHP-Workern.
Falls Sie eine Kompromittierung vermuten: Ein PHP-Update entfernt nichts, was ein Angreifer möglicherweise hinterlassen hat. Dafür ist eine separate Untersuchung erforderlich.
So können wir helfen
Unsere Prüfung ermittelt die PHP-Laufzeitumgebung, die Ihre Website tatsächlich ausliefert, prüft deren Patchstatus beim Anbieter und liefert Ihnen schriftliche Ergebnisse mit einem klaren nächsten Schritt. An Ihrem Server ändert sich nichts, bevor wir den Umfang mit Ihnen abgestimmt haben.
Quellen
- PHP-Sicherheitshinweis, 21. Oktober 2026
- Zusammenfassung der PHP2Shell-Forschungsergebnisse
- Ubuntu-Sicherheitshinweis USN-8948-1
- Cloudflare: WAF-Schutz für die PHP-Schwachstellen
Geprüft am 22. Oktober 2026. Diese Zusammenfassung dient der allgemeinen Information und ist keine Beratung zu Ihren Systemen. Die aktuellen Details finden Sie im PHP-Sicherheitshinweis.