PHP2Shell legt Behörden lahm: Wer jetzt patchen muss
Zwei kritische PHP-Lücken holten Behörden und Kliniken vom Netz. Zuständig für den Patch ist, wer die PHP-Laufzeit betreibt.
Zwei kritische PHP-Lücken, die Codeausführung ohne Anmeldung erlauben, haben am 21. Oktober 2026 Websites von Behörden, Kliniken und Hochschulen in mehreren europäischen Ländern vorübergehend vom Netz geholt. Für die als PHP2Shell bekannten Fehler sind Exploits öffentlich. Das Update kommt nur dort an, wo Hoster, Distribution oder das eigene Team die PHP-Laufzeit austauschen.
Das Wichtigste in Kürze
- Zuständig für PHP2Shell ist, wer die PHP-Laufzeit betreibt. Bei Managed- und Shared-Hosting spielt der Provider das Update ein, auf eigenen Servern kommen die Pakete von der Distribution oder dem LTS-Anbieter.
- Die Cloudflare-WAF schützte schon rund neun Stunden vor der Bekanntgabe. Die Regeln greifen auch im kostenlosen Tarif und überbrücken die Zeit, bis die Laufzeit aktualisiert ist.
- Auch Plattformanbieter mussten selbst reagieren. Railway pausierte am selben Tag alle Deployments und empfahl die Rotation aller Umgebungsvariablen, LiteLLM verteilte kompromittierte Images.
Verwandt:Cloudflare greift WordPress-Krise mit EmDash an / Kubernetes-Support endet, Amazon kassiert das Sechsfache
Ein Patchtag, an dem Websites vom Netz gingen
Das PHP-Sicherheitsteam hatte die beiden Lücken am 20. Oktober angekündigt, beide mit CVSS 9,2 und mit Veröffentlichung für den Mittwochnachmittag. Nach Angaben von SecurityToday sickerten die Details schon am Dienstag vor der koordinierten Veröffentlichung durch. Die Patch-Versionen aller unterstützten Zweige erschienen am Mittwoch. Betroffen sind alle PHP-Installationen, die Webanfragen bedienen, darunter PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed. Das höchste Risiko sieht das PHP-Projekt bei mod_php: Dort löst eine Anfrage ohne Anmeldung den Angriff aus, bevor Anwendungscode läuft.
Wo kein sofortiges Update möglich war, nahmen Behörden, Kliniken, Hochschulen und Regierungen in mehreren europäischen Ländern ihre Websites vorsorglich vom Netz. In Berlin waren zwischenzeitlich die Websites von Robert-Koch-Institut, BND, BKA, Zoll und Bundespolizei abgeschaltet. CISA, NSA und FBI warnten gemeinsam, Systeme offline zu nehmen, wenn sie sich nicht zügig absichern lassen. Wer nicht sofort patchen kann, soll laut CERT-EU erwägen, erreichbare Anwendungen vom öffentlichen Netz zu isolieren, bis der Fix eingespielt und geprüft ist.
PHP läuft laut W3Techs auf 69,3 Prozent aller Websites, deren serverseitige Programmiersprache bekannt ist. Das RUS-CERT der Universität Stuttgart meldete noch am 21. Oktober öffentlich verfügbare Exploits und verifizierte einen davon an einem Testsystem.
Wer die Laufzeit betreibt, spielt den Patch ein
Die Fehler stecken in der PHP-Laufzeit selbst. Deshalb wirkt das Update nur dort, wo Hoster, Distribution oder das eigene Team die Laufzeit austauschen. Bei Managed- und Shared-Hosting spielt der Provider das Update ein. Wer PHP bei einem Hoster betreibt, soll laut Cloudflare den Anbieter um das Sicherheitsupdate bitten und die WAF währenddessen eingeschaltet lassen.
Auf eigenen Servern kommen die Pakete von der Distribution oder dem LTS-Anbieter, beide hatten die Patches vorab erhalten. Laut SecurityToday lagen bei Ubuntu wenige Stunden nach der Veröffentlichung korrigierte Pakete für die unterstützten LTS-Releases vor.
Was ist die PHP-Laufzeit? Die PHP-Laufzeit ist die Software auf dem Webserver, die den PHP-Code einer Website ausführt, etwa als PHP-FPM oder als Apache-Modul mod_php. Sie wird getrennt vom Website-Code aktualisiert, je nach Betriebsmodell durch Hoster, Distribution oder eigenes Team.
Schwierig wird es bei alten Zweigen. Reguläre Updates erhalten nur die Zweige ab 8.2, für ältere Zweige stellte das PHP-Security-Team nur minimale Quellcode-Backports bereit.
Rund 35 Prozent der PHP-Websites laufen auf Hauptversionen vor PHP 8, für die das PHP-Projekt keine fertige Fix-Version veröffentlicht hat. Ohne LTS-Anbieter bleibt ihnen die Migration oder der Eigenbau aus einem der wenigen Quellcode-Backports.
| Betriebsmodell | Wer patcht | Was beim Kunden bleibt |
|---|---|---|
| Managed- und Shared-Hosting | Der Provider | Zeitplan beim Anbieter erfragen, WAF eingeschaltet lassen |
| Eigener Server | Das eigene Team mit Paketen von Distribution oder LTS-Anbieter | Pakete zeitnah einspielen |
| PHP vor Version 8.2 | Keine reguläre Fix-Version, nur minimale Quellcode-Backports | Selbst bauen, LTS-Anbieter suchen oder migrieren |
| Hinter der Cloudflare-WAF | Cloudflare filtert Angriffe seit 03:02 Uhr UTC | Laufzeit trotzdem aktualisieren |
Wer PHP2Shell schließt, hängt am Betriebsmodell. Quellen: php.net, Cloudflare, SecurityToday.
Die WAF überbrückt die Zeit bis zum Update
Die Cloudflare-WAF schützte Kunden mit kostenlosem oder kostenpflichtigem Tarif bereits vor der öffentlichen Bekanntgabe gegen PHP2Shell. Ab dem 21. Oktober 2026 um 03:02 Uhr UTC war der Schutz standardmäßig aktiv, die Regeln waren etwa neun Stunden vor der öffentlichen Bekanntgabe ausgerollt. Während die Lücke vor dem Releasetermin geleakt war, beobachtete Cloudflare Angriffsverkehr und Angreifer, die ihre Nutzlast veränderten, um die Regeln zu umgehen.
Im kostenlosen Tarif liegen die Regeln im Cloudflare Managed Free Ruleset und müssen nicht selbst aktiviert werden. Zuständig für das Einspielen des Updates bleibt, wer die Laufzeit betreibt.
GitLab und Node.js am selben Tag
Am selben Tag erschienen die Patch-Releases für GitLab Community Edition und Enterprise Edition. Die kritische Lücke im Compiler für reguläre Ausdrücke hätte einem nicht authentifizierten Nutzer unter bestimmten Bedingungen die Ausführung beliebigen Codes auf dem Server erlauben können und trägt CVSS 10.0. GitLab.com führt die gepatchte Version bereits aus, selbstverwaltete Installationen sollen sofort aktualisiert werden.
Die Vercel-WAF blockiert den eingehenden Angriffsvektor der Node.js-Lücke im Brotli-Decoder für jedes Projekt auf Vercel automatisch. Node.js außerhalb der verwalteten Runtimes ist auf die gepatchten Versionen zu bringen, weil die WAF abgerufene Antworten nicht abdeckt.
Die Node.js-Sicherheitsreleases für alle unterstützten Linien bringen zusätzlich eine aktualisierte Liste der mitgelieferten Zertifikate mit. Mozilla und Google entziehen der eMudhra-Wurzel emSign ECC Root CA G3 das Vertrauen, weil sich bei acht ihrer Zwischenzertifikate die privaten Schlüssel praktisch sofort zurückrechnen ließen. Wer die mitgelieferte Liste von Node.js nutzt, erhält die Sperre erst mit dem Update der Laufzeit.
Wenn die Plattform selbst betroffen ist
Railway stellte am 21. Oktober ungewöhnliche Aktivität in den Systemen fest, in denen Umgebungsvariablen der Kunden gespeichert werden. Ein unbefugter Dritter hat möglicherweise auf die verschlüsselten Variablen zugegriffen und bei einem Teil davon die entschlüsselten Inhalte erhalten. Das Unternehmen empfiehlt allen Nutzern, sofort alle bei Railway gespeicherten Umgebungsvariablen einschließlich API-Schlüsseln sowie private Registry-Zugangsdaten zu rotieren. Während der Untersuchung pausierte Railway alle Deployments. Laut Statusseite sind Builds seit dem Morgen des 22. Oktober für Pro- und Enterprise-Workspaces wieder verfügbar, für Hobby-, Free- und Trial-Kunden arbeitet Railway noch an der Freigabe.
Am selben Morgen wurde die Release-Pipeline von LiteLLM kompromittiert, die Version 1.107.0 mit Schadcode auf PyPI und in der Docker-Registry veröffentlichte. Wer Images im betroffenen Zeitfenster über die beweglichen Tags latest, main-latest oder main-stable bezog, konnte das kompromittierte Image erhalten, ohne bewusst auf die neue Version zu wechseln. Zeabur hatte bereits die Einstellung des Betriebs angekündigt, bis zum 31. Dezember 2026 stellen alle Dedicated Server und Shared Cluster den Betrieb ein.
In diesen Fällen entstand der Vorfall beim Anbieter, die Arbeit liegt trotzdem beim Kunden: Zugangsdaten rotieren, Images prüfen, Dienste umziehen. Bei PHP2Shell entscheidet das Betriebsmodell, wer handeln muss. Auf jedem eigenen Server ist das das eigene Team.
- Cloudflare-Regeln gegen PHP2Shell greifen seit 03:02 Uhr UTC, auch im kostenlosen Tarif
- Distributionen und LTS-Anbieter hatten die Patches vorab, Ubuntu lieferte nach wenigen Stunden
- GitLab.com läuft bereits mit der gepatchten Version
- Rund 35 Prozent der PHP-Websites laufen auf Hauptversionen ohne fertige Fix-Version
- Hobby-, Free- und Trial-Kunden bei Railway warten noch auf ihre Deployments
- Zeabur-Kunden müssen ihre Dienste vor der Abschaltung umziehen
Häufige Fragen
Was ist PHP2Shell?
PHP2Shell ist der Spitzname für das Lückenpaar CVE-2026-109618 und CVE-2026-109619 in der PHP-Laufzeit, angelehnt an Log4Shell. Beide Fehler können Codeausführung ohne Anmeldung erlauben und tragen CVSS 9,2. Entdeckt haben sie nach Angaben von SecurityToday die Teams von Wiz und Calif mit Hilfe von KI-Modellen.
Reicht ein Update von WordPress oder den Plugins?
Die Lücken stecken in der PHP-Laufzeit, ein Update von Website-Code oder Plugins schließt sie laut Cloudflare nicht. Wiz bestätigte die Codeausführung ohne Anmeldung nach Angaben von SecurityToday gegen Drupal und WordPress. Auch das Verbergen von Diagnosen über error_reporting, display_errors oder den @-Operator schützt nicht.
Was, wenn das PHP-Update nicht sofort möglich ist?
Angepasste Grenzen für Speicher und Uploads sowie das Deaktivieren des Session-Upload-Progress senken laut PHP-Projekt einzelne Angriffswege, sicher macht das die Installation nicht. ini_set() und eine FPM-.user.ini reichen dafür ebenfalls nicht aus. Für PHP 8.1 und älter gibt es keine offiziellen Fix-Versionen, das PHP-Projekt stellte für einzelne ältere Zweige nur minimale Quellcode-Backports bereit.
Lesetipps der Redaktion
SecurityTodayPHP-Lücken: Sicherheitsbehörden raten zum AbschaltenSecurityTodayPHP-Exploits sind öffentlich, Hoster müssen jetzt patchenSecurityTodayGoogle und Apple vertrauten erratbaren eMudhra-SchlüsselnMehr aus dem MBF Media Netzwerk
MyBusinessFutureNach Anthropic-Ausfall: Jede zweite Firma ohne Plan BDigital ChiefsMicrosoft: Deutschland ist EU-Spitze bei CyberangriffenSecurityTodayWenn gekaufte KI-Router Schadcode einschleusenBildquelle: KI-generiert (Oktober 2026)

