Zum Hauptinhalt springen
Diese Website enthält mit KI erstellte Inhalte. Mehr erfahren
Hintergrundbild zu „PHP2Shell: Wer kümmert sich eigentlich um das PHP auf Ihrer Webseite?“KI
Aktuell

PHP2Shell: Wer kümmert sich eigentlich um das PHP auf Ihrer Webseite?

PHP schließt zwei kritische Lücken, ein Exploit kursiert. Welche Versionen sicher sind, wer jetzt handeln muss und wo PHP unbemerkt im Einsatz ist.

  • Security
  • Updates
  • Kommunen

Achtung: akute Sicherheitslage

Erhöhte Warnstufe

Außerplanmäßige Veröffentlichung wegen der aktuellen Sicherheitslage

Wir veröffentlichen diesen Beitrag kurzfristig, weil sich die Lage stündlich verschärft. Die Sicherheitslücke ist so gravierend, dass Fernseh- und Radiosender bis hin zur tagesschau das Thema aufgegriffen haben und unter Berufung auf das BSI ausdrücklich warnen. Landesregierungen, Universitäten, Kliniken und Kommunen haben ihre Webseiten vorsorglich vom Netz genommen. Für die nächsten Tage bitten wir um besondere Aufmerksamkeit: Rechnen Sie mit vermehrten Phishing- und Spam-Mails, auch von bekannten Absendern und mit Links auf echte, aber kompromittierte Webseiten. Öffnen Sie Links und Anhänge in unerwarteten Mails nicht, auch wenn der Absender vertraut wirkt. Geben Sie Zugangsdaten nur auf Seiten ein, die Sie selbst aufgerufen haben, nicht über Links aus Mails. Bestätigen Sie Änderungen von Bankverbindungen und ungewöhnliche Zahlungsaufforderungen immer telefonisch über eine bekannte Nummer. Dieser Beitrag wird laufend aktualisiert.

Auffälligkeiten lieber einmal zu oft als zu spät an Ihre IT melden.

Offizielle Warnung des BSI: Cybersicherheitswarnung „PHP – Kritische Schwachstellen bedrohen Webanwendungen weltweit“ (Bundesamt für Sicherheit in der Informationstechnik, 21.10.2026). Das BSI ruft dazu auf, die Patches unverzüglich zu installieren. Auch die tagesschau berichtet über die Lücke und ihre Folgen.

Seit heute Nachmittag gibt es die Korrektur für zwei kritische Lücken in PHP, der Programmiersprache, auf der ein Großteil aller Webseiten, Shops und Webanwendungen läuft. Über die Lücken lässt sich mit einer einzigen präparierten Anfrage Code auf dem Server ausführen. Ein Exploit ist bereits im Umlauf.

Das Update selbst ist schnell eingespielt. Die schwierigere Frage lautet in vielen Unternehmen und Kommunen: Wer kümmert sich eigentlich um das PHP auf unserer Webseite – und auf all den anderen Systemen, von denen niemand weiß, dass sie PHP verwenden?

Kernaussage

Stand 21.10.2026, abends

PHP hat am 21. Oktober die Versionen 8.5.12, 8.4.27, 8.3.36 und 8.2.35 veröffentlicht. Sie schließen zwei kritische Lücken, über die Angreifer per manipulierter Anfrage Code auf dem Webserver ausführen können. Ein Exploit kursiert bereits. Betroffen sind praktisch alle Webseiten und Webanwendungen auf PHP. Entscheidend ist jetzt, dass jemand das Update einspielt – und dass klar ist, wer dieser Jemand ist.

Anwendungen mit Zugriff auf Microsoft 365 jetzt prüfen

Wichtig für Microsoft 365

Besonders kritisch sind PHP-Anwendungen mit Zugriff auf Microsoft 365: Ticket- und CRM-Systeme, Portale oder Webseiten, die über eine App-Registrierung Mails versenden oder auf Postfächer, Kalender und Benutzer zugreifen. Auf solchen Servern liegen die Zugangsdaten dieser App. Wer den Server übernimmt, kann sie auslesen – und je nach Berechtigung Mails im Namen Ihrer Organisation versenden, Postfächer lesen oder sogar den gesamten Tenant übernehmen. War eine solche Anwendung seit dem 20. Oktober ungepatcht aus dem Internet erreichbar, prüfen Sie bitte umgehend in Entra ID die Anmeldungen dieses Dienstprinzipals auf fremde IP-Adressen und das Überwachungsprotokoll auf neue Berechtigungen, Secrets oder App-Registrierungen. Stellen Sie das Secret bzw. Zertifikat der App vorsorglich neu aus und widerrufen Sie das alte. Das kostet wenige Minuten und verhindert, dass möglicherweise erbeutete Zugangsdaten weiter funktionieren.

Landesregierungen, Unis, Kliniken und kommunale Dienstleister gehen vorsorglich offline

Deutschland und Europa

Wie ernst die Lage ist, zeigt der Blick in die Region: Am 21. Oktober hat die Landesregierung Baden-Württemberg die Webseiten der Ministerien und Regierungspräsidien vorsorglich vom Netz genommen, ebenso die Landesregierungen in Bayern, Hessen und Thüringen sowie Städte wie Mainz und Dresden. Auch die Universitäten Freiburg, Heidelberg, Tübingen und Ulm, das KIT, die Uniklinik Freiburg, die Berliner Charité und die Berliner Feuerwehr waren offline. In den Niederlanden, Finnland, Dänemark und Frankreich haben Behörden ebenfalls Webseiten abgeschaltet. Auch große kommunale IT-Dienstleister haben reagiert und einzelne Fachanwendungen vorsorglich vom Netz genommen. Kommunen sollten sich in den nächsten Tagen daher auf Einschränkungen bei einzelnen Online-Diensten und Fachverfahren einstellen. Es handelt sich dabei nicht um erfolgreiche Angriffe, sondern um eine bewusste Schutzmaßnahme: Sicherheit vor Verfügbarkeit, bis die Updates eingespielt sind.

CVE-2026-109618

Kritisch

Speicherfehler, wenn PHP beim Aufbau einer Anfrage das Speicherlimit erreicht. CVSS 9.2.

CVE-2026-109619

Kritisch

Daten einer Anfrage bleiben nach dem Freigeben im Speicher zurück. Bestätigter Weg: Upload-Fortschrittsanzeige. CVSS 9.2.

Korrigiert in

8.5.12 · 8.4.27 · 8.3.36 · 8.2.35

Nur für die unterstützten Zweige 8.2 bis 8.5. Für 8.1 und älter gibt es keine fertigen Updates.

Was passiert ist

Am Abend des 20. Oktober kündigte das PHP-Sicherheitsteam ein außerplanmäßiges Update für zwei kritische Lücken an. Zu diesem Zeitpunkt waren Details bereits durchgesickert, was die Veröffentlichung beschleunigt hat. Das BSI warnte am Nachmittag des 21. Oktober mit der zweithöchsten Stufe. Kurz vor dem angekündigten Termin um 16 Uhr erschienen die korrigierten Versionen samt Sicherheitshinweisen.

Beide Lücken stecken im Kern von PHP, nicht in WordPress, Shopware oder einem Plugin. Betroffen sind laut PHP-Team alle Versionen seit PHP 5 und alle gängigen Betriebsarten: PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed. Das höchste Risiko sieht das PHP-Projekt bei mod_php, weil dort ein Angriff nachgewiesen wurde, der greift, bevor überhaupt Code der Anwendung läuft. Technisch beschädigt PHP bei der einen Lücke seinen Speicher, wenn eine Anfrage das Speicherlimit erreicht. Bei der anderen bleiben Daten einer Anfrage im Speicher zurück, obwohl sie bereits freigegeben wurden – bestätigt unter anderem für die Upload-Fortschrittsanzeige, die in der Standardkonfiguration eingeschaltet ist. Ein Angriff braucht nur eine gewöhnliche Formular- oder Upload-Anfrage.

Exploit im Umlauf, erste Angriffe gemeldet

Die Entdecker von der Sicherheitsfirma Calif zeigen in einem Video, wie sie auf einem Webserver mit dem PHP-Framework Laravel in 38 Sekunden Systembefehle ausführen. Ein Proof of Concept kursiert öffentlich. Sicherheitsfirmen wie Cloudflare, Patchstack, Aikido und watchTowr melden bereits erste Angriffe; offiziell bestätigt sind sie vom PHP-Team und vom BSI noch nicht. Das BSI hält eine großflächige Ausnutzung innerhalb kurzer Zeit für wahrscheinlich, denn der Angriff lässt sich vollständig automatisieren. Wer öffentlich erreichbare PHP-Systeme betreibt, sollte deshalb heute noch handeln und nicht erst beim nächsten Wartungsfenster.

Das Video der Entdecker, das den Angriff auf einen Laravel-Server zeigt, ist im Beitrag von heise online zu php2shell eingebunden. Es zeigt eindrücklich, wie wenig Aufwand ein Angriff erfordert.

Die eigentliche Frage: Wer ist zuständig?

Die wenigsten Unternehmen und Kommunen betreiben ihren Webserver selbst. Die Webseite liegt bei einem Hoster, der Shop bei einer Agentur, das Bürgerportal bei einem kommunalen Dienstleister. Das ist sinnvoll – aber nur, wenn klar geregelt ist, wer bei einer Lücke wie dieser handelt. In der Praxis sehen wir häufig, dass sich jeder auf den anderen verlässt: Der Kunde auf die Agentur, die Agentur auf den Hoster, der Hoster auf den Kunden, der ja „seine“ PHP-Version selbst ausgewählt hat.

Drei typische Konstellationen

Webhosting

Bei Shared Hosting aktualisiert in der Regel der Anbieter. Prüfen Sie aber, ob Ihre Webseite noch auf einer alten PHP-Version läuft, die Sie selbst im Kundenmenü ausgewählt haben.

Agentur oder Dienstleister

Hat eine Agentur Ihren Shop oder Ihre Webseite auf einem eigenen Server oder in Containern eingerichtet, ist oft sie verantwortlich – aber nur, wenn das vertraglich so vereinbart ist.

Eigener Betrieb

Eigene Server, virtuelle Maschinen oder Container mit PHP liegen bei Ihnen oder Ihrem IT-Dienstleister. Dazu zählen auch Systeme, die niemand mehr als „Webseite“ wahrnimmt.

Praxisbeispiel: Hoster kümmert sich – oder eben nicht

Wie wichtig die Frage nach der Zuständigkeit ist, zeigt der große deutsche Anbieter Hetzner. Für sein Webhosting und seine Managed Server hat Hetzner bis zum Abend des 21. Oktober alle PHP-Versionen von 7.4 bis 8.5 aktualisiert – einschließlich selbst eingebauter Korrekturen für ältere Versionen, für die das PHP-Projekt keine fertigen Updates liefert. Kunden mit eigenen Cloud- oder Dedicated Servern bei Hetzner wurden dagegen nur per Mail informiert: Diese Server verwaltet der Kunde selbst, und damit liegt auch das Update bei ihm oder seiner Agentur. Viele kleine Unternehmen wissen nicht, welche der beiden Varianten sie haben. Wenn Sie nur wissen, dass Ihre Webseite „irgendwo bei Hetzner“ oder einem anderen Anbieter liegt, klären Sie das jetzt.

Den Verlauf dokumentiert Hetzner auf seiner Statusseite zu den PHP-Sicherheitslücken. Vergleichbare Statusmeldungen gibt es bei den meisten großen Hostern – ein Blick dorthin ist der schnellste Weg zu erfahren, ob Ihre Webseite bereits geschützt ist.

Ihre Webseite ist plötzlich nicht erreichbar oder Formulare funktionieren nicht? Zahlreiche Hoster haben vorsorglich reagiert: Einige haben PHP-Dienste ihrer Kunden vollständig pausiert, bis das Update eingespielt ist, andere sperren Datei-Uploads über Webseiten oder haben zusätzliche Schutzregeln aktiviert. Kontaktformulare mit Anhang, Bewerbungsportale oder Upload-Funktionen in Shops können deshalb gerade ausfallen. Eine Wartungsseite oder Fehlermeldung bedeutet in diesen Tagen meist eine Schutzmaßnahme und keinen Angriff. Schauen Sie auf der Statusseite oder im Kundenbereich Ihres Hosters nach oder fragen Sie dort direkt nach.

Wo PHP läuft, ohne dass es jemand weiß

Die Firmenwebseite ist meist bekannt. Kritischer sind Systeme, die auf PHP laufen, ohne dass das jemandem bewusst ist: Webmail-Oberflächen wie Roundcube, ein altes Intranet oder Wiki, Ticket- und Zeiterfassungssysteme, Monitoring-Werkzeuge und Testinstallationen, die ein Dienstleister einmal aufgesetzt hat. Dazu kommen NAS-Systeme, Appliances und Router mit eigener Weboberfläche, ebenso Steuerungen in Haus- und Gebäudetechnik, Telefonanlagen oder Kamerasystemen. Auch heise online rät ausdrücklich, solche Geräte zu überprüfen. Sie bekommen oft nur langsam oder gar keine Updates und hängen nicht selten über eine alte Portfreigabe direkt im Internet. Wie schnell solche Systeme in Vergessenheit geraten, haben wir zuletzt am Beispiel AnyDesk und im Beitrag „Fahrlässig ab Werk“ beschrieben.

Was jetzt zu tun ist

  1. Systeme mit PHP auflisten: Webseite, Shop, Portale und alle internen Anwendungen mit Weboberfläche. Im Zweifel beim jeweiligen Dienstleister nachfragen.
  2. Zuständigkeit klären und nachfragen: Bei Hostern, Agenturen und Dienstleistern aktiv nachfragen, ob und wann auf die korrigierte Version aktualisiert wurde. Eine schriftliche Antwort hilft auch später, etwa gegenüber dem Datenschutzbeauftragten.
  3. Eigene Server aktualisieren: Auf 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 bzw. auf die gepatchten Pakete der Distribution. Danach PHP-FPM oder den Webserver neu starten, sonst läuft weiter die alte Version im Speicher.
  4. Plugin-Updates reichen nicht: Die Lücke sitzt in PHP selbst. Updates von WordPress, Joomla, Shopware oder deren Erweiterungen ändern daran nichts.
  5. Alte PHP-Versionen ernst nehmen: Für PHP 8.1 und älter gibt es nur Quellcode-Korrekturen, keine fertigen Updates. Wie verbreitet das Problem ist, zeigt eine Zählung der Sicherheitsfirma Mallory: Am 20. Oktober meldeten rund 884.000 Server im Internet eine PHP-Version 8.1 oder älter – 59 Prozent aller Server, die überhaupt eine Versionsangabe machten. Weitere 740.000 gaben keine Version preis. Solche Systeme sollten jetzt auf eine unterstützte Version gehoben, über erweiterte Wartung der Distribution oder des Hosters versorgt oder vom Netz genommen werden.
  6. Auf Spuren prüfen – ab dem 20. Oktober: Angriffe liefen bereits vor dem Patch, unmittelbar nach dem Leak. Wer am 20. und 21. Oktober ungepatchte Systeme im Netz hatte, sollte sie deshalb unbedingt prüfen und nicht nur aktualisieren. Ein Angriff erfordert typischerweise tausende Anfragen: Auffällig viele POST-Anfragen einer einzelnen IP-Adresse in kurzer Zeit in den Webserver- oder WAF-Protokollen sind ein deutliches Warnsignal. Ein typisches Zeichen eines erfolgreichen Angriffs sind außerdem ungewöhnliche Kindprozesse der PHP- oder Webserver-Prozesse, etwa eine Shell unter php-fpm, apache2 oder php-cgi.exe, sowie neue oder veränderte PHP-Dateien im Webverzeichnis.

Prüfen und aktualisieren auf eigenen Linux-Servern

Beispiele für Debian und Ubuntu. Die Versionsnummer an den eigenen Zweig anpassen.

1. Welche PHP-Version läuft?
php -v

# Version von PHP-FPM, z. B. fuer 8.3
php-fpm8.3 -v

# Installierte Zweige (Debian, Ubuntu)
ls /etc/php/
2. Aktualisieren (Debian/Ubuntu, Beispiel 8.3)
sudo apt update
sudo apt install --only-upgrade 'php8.3-*'
sudo systemctl restart php8.3-fpm
3. Prüfen, ob der Fix enthalten ist
apt changelog php8.3-fpm | grep -E 'CVE-2026-10961(8|9)'
4. Auffällige Prozesse unter PHP und Webserver suchen
ps -eo pid,ppid,user,lstart,cmd --forest | grep -B1 -A3 -E 'php-fpm|php-cgi|apache2|httpd'

Die Kommandozeile und die Webseite können unterschiedliche PHP-Versionen nutzen. Maßgeblich ist die Version, unter der die Webseite läuft (PHP-FPM oder Webserver-Modul). Bei Containern das Image auf die neue Version anheben und neu ausrollen. Zu Befehl 4: Unter den PHP- und Webserver-Prozessen sollten nur deren eigene Worker stehen. Shells (sh, bash), Interpreter (perl, python) oder Download-Werkzeuge (curl, wget) als Kindprozesse sind ein deutliches Warnsignal.

Dauerhafte Überwachung ohne Endpoint-Schutz: Für Linux-Server ohne EDR-Lösung hat der Sicherheitsforscher Florian Roth mit dem process-watcher ein Werkzeug veröffentlicht, das jedes Programm protokolliert, das ein PHP-Prozess startet – samt Befehlszeile. Es dient der Erkennung, nicht dem Schutz: Ein Programm wird erst nach dem Start sichtbar, verhindert wird nichts. Als zusätzliches Frühwarnsystem bis zum Update ist es aber hilfreich.

Prüfen und absichern auf Windows-Servern

In einer PowerShell mit Administratorrechten ausführen. Der erste Befehl durchsucht die angegebenen Laufwerke und kann einige Minuten dauern.

1. Alle PHP-Installationen auf dem Server finden und Version anzeigen
Get-ChildItem -Path C:\, D:\ -Filter php.exe -Recurse -ErrorAction SilentlyContinue |
    Select-Object FullName, @{ n = 'Version'; e = { $_.VersionInfo.ProductVersion } }
2. Welches PHP nutzt der IIS?
Import-Module WebAdministration
Get-WebConfiguration system.webServer/fastCgi/application |
    Select-Object fullPath, arguments
3. Übergangslösung setzen und Dienste neu starten
# In der jeweiligen php.ini eintragen bzw. aendern:
session.upload_progress.enabled = 0

# Danach IIS neu starten
iisreset

# Oder Apache neu starten (z. B. XAMPP), Dienstname anpassen
Restart-Service Apache2.4

Aktualisieren: Die korrigierten Versionen gibt es unter windows.php.net. Für IIS wird in der Regel die Variante „Non Thread Safe“ benötigt, für Apache mit mod_php „Thread Safe“ – jeweils in derselben Architektur und Compiler-Version wie bisher. Programmordner sichern, Dateien ersetzen, php.ini und Erweiterungen beibehalten, danach IIS bzw. Apache neu starten und mit dem ersten Befehl die Version prüfen. Wichtig: Bringt eine Fachanwendung oder ein Ticketsystem ihr PHP selbst mit, tauschen Sie es nicht eigenmächtig aus, sondern fragen Sie beim Hersteller nach. Bis dahin helfen die Übergangslösung und eine Sperre des Zugriffs aus dem Internet.

Wenn das Update nicht sofort möglich ist

PHP nennt als Übergangslösung, die Upload-Fortschrittsanzeige mit session.upload_progress.enabled = 0 in der php.ini oder im FPM-Pool abzuschalten und alle Worker neu zu starten. Eine Einstellung per ini_set() greift zu spät. Viele Hoster haben das bereits global gesetzt. Bei PHP-FPM verkürzt ein niedriger Wert für pm.max_requests zusätzlich, wie lange ein manipulierter Zustand in einem Worker überlebt – auf Kosten der Leistung. Wichtig: Diese Maßnahmen reichen nicht aus. Ein Sicherheitsforscher hat inzwischen eine Analyse mit Proof-of-Concept-Code veröffentlicht, nach der das Abschalten der Upload-Fortschrittsanzeige nicht alle Angriffswege schließt. Vollständig schützt nur das Update. Wo es noch nicht möglich ist, bleibt nur die Sperre des Zugriffs aus dem Internet.

Wer eine Anwendung nicht sofort aktualisieren kann, weil der Hersteller noch kein Update liefert, sollte sie bis dahin aus dem Internet nehmen oder nur noch über VPN bzw. bekannte IP-Adressen erreichbar machen. Die Anmeldung der Anwendung selbst schützt hier nicht, weil die Lücke greift, bevor die Anwendung überhaupt startet. Genau so sind wir auch selbst vorgegangen: Unser eigenes Ticketsystem basiert auf PHP, der Hersteller hat noch kein Update bereitgestellt. Wir haben den Zugang aus dem Internet deshalb am Abend des 21. Oktober an der Firewall gesperrt. Intern und über VPN läuft es weiter, freigeschaltet wird es erst wieder mit dem Update. Das ist unbequem, aber die einzige wirksame Maßnahme, solange es keinen Patch gibt.

Für Einkäufe im Internet in den nächsten Tagen

Das größte Risiko tragen derzeit die Shopbetreiber. Auf kompromittierten Shops können Angreifer aber Zahlungs- und Zugangsdaten abgreifen, vor allem bei kleineren Shops mit veralteter Technik. Einen pauschalen Verzicht auf Online-Einkäufe halten wir nicht für nötig. Mit wenigen Vorsichtsmaßnahmen, die auch für Firmeneinkäufe gelten, lässt sich das Risiko deutlich senken:

  • Zahlungsart mit Bedacht wählen: Möglichst Verfahren nutzen, bei denen Kartendaten nicht im Shop selbst eingegeben werden, etwa PayPal, Kauf auf Rechnung oder die Weiterleitung zum Zahlungsanbieter.
  • Eigenes Passwort je Shop: Wird ein Shop kompromittiert, bleiben die anderen Konten sicher.
  • Links in Shop-Mails misstrauen: Mails zu Bestellungen, Lieferungen oder angeblichen Problemen mit dem Kundenkonto besonders kritisch prüfen. Den Shop lieber direkt im Browser aufrufen.
  • Abrechnungen kontrollieren: Kontoauszüge und Kreditkartenabrechnungen in den nächsten Wochen aufmerksam durchsehen und Unstimmigkeiten sofort bei der Bank melden.

Einordnung

Technisch ist die Lösung einfach: aktualisieren, neu starten, fertig. Schwierig wird es dort, wo niemand genau weiß, welche Systeme betroffen sind und wer sie betreut. Genau diese Frage sollten Unternehmen und Kommunen jetzt klären – nicht nur für diese Lücke, sondern für die nächste. Wie schnell Angreifer öffentliche Exploits heute nutzen, zeigt unser Beitrag zur negativen Time-to-Exploit.

Warum solche Lücken gerade jetzt gefunden werden

Dass ein Fehler nach rund 20 Jahren entdeckt wird, ist kein Zufall. An der Entdeckung von PHP2Shell waren laut BSI die Sicherheitsfirmen Wiz und Calif gemeinsam mit OpenAI beteiligt. KI-Modelle durchsuchen Quellcode inzwischen in einem Tempo und einer Tiefe nach Schwachstellen, das für Menschen allein nicht erreichbar ist. Das betrifft nicht nur PHP: Auch Modelle wie Claude Mythos von Anthropic finden nach Angaben des Herstellers Tausende schwerwiegende Lücken, weshalb Bankenaufsicht und Notenbanken bereits vor den Folgen für das Finanzsystem warnen – die tagesschau berichtet darüber. Für Verteidiger ist das eine Chance, weil Lücken früher gefunden und geschlossen werden. Es bedeutet aber auch: Wir müssen uns auf mehr und schnellere Sicherheitsupdates einstellen, und auf Angreifer, die dieselben Werkzeuge nutzen. Wer seine Systeme kennt und zügig patchen kann, ist klar im Vorteil.

Unsicher, wo bei Ihnen PHP läuft?

Wir helfen beim Aufspüren betroffener Systeme, bei der Abstimmung mit Hostern und Dienstleistern und beim Aktualisieren eigener Server.

Kontakt aufnehmen

Quellen & weiterführende Links

Recherchestand: 21. Oktober 2026, abends. Die Lage entwickelt sich weiter.

PHP2Shell: Kritische PHP-Lücken – wer jetzt handeln muss