Kategorien: IT-Sicherheit

by Tayfun Özdemir

Share

PHP2Shell ist der Name für zwei kritische Sicherheitslücken in PHP selbst (CVE-2026-109618 und CVE-2026-109619), über die Angreifer ohne Login Code auf Webservern ausführen können. Betroffen ist praktisch jede PHP-Version vor dem 21. Oktober 2026, also auch jede WordPress-Website. Sicher sind nur PHP 8.2.35, 8.3.36, 8.4.27 und 8.5.12 oder neuer. Ein WordPress-Update hilft hier nicht, aktualisiert werden muss PHP auf dem Server.

In diesem Ratgeber erklären wir, was hinter PHP2Shell steckt, wie Sie in fünf Minuten prüfen, ob Ihre Website betroffen ist, und was Sie jetzt tun sollten, je nachdem, ob Sie bei einem Hoster sind oder einen eigenen Server betreiben.

Was ist PHP2Shell?

PHP ist die Programmiersprache, auf der WordPress, WooCommerce, Joomla, TYPO3, Shopware und Nextcloud laufen. Laut der Forschergruppe hinter php2shell.com nutzen rund 70 Prozent aller Websites PHP. Wenn in PHP selbst eine Lücke steckt, sitzt sie also eine Etage unter Ihrer Website, im Fundament.

Genau das ist bei PHP2Shell passiert. Die Lücke liegt darin, wie PHP aufräumt, wenn eine Anfrage abbricht, zum Beispiel weil ihr der Speicher ausgeht. PHP verwirft dann den Speicher der Anfrage, behält aber an einigen Stellen Zeiger darauf. Die nächste Anfrage im selben Prozess vertraut diesen Zeigern. Wer die Abbrüche gezielt auslöst, kann darüber Speicherinhalte auslesen oder eigenen Code ausführen.

Gefunden haben die Lücken Forscher von Wiz, Calif und OpenAI, zum Teil mit Hilfe von KI-Modellen. Das PHP-Projekt bewertet beide mit 9,2 von 10 Punkten nach CVSS 4.0. Wiz zieht den Vergleich zu Heartbleed, der OpenSSL-Lücke von 2014.

Warum PHP2Shell so gefährlich ist

Drei Eigenschaften machen PHP2Shell unangenehmer als die übliche Plugin-Lücke:

  • Kein Login nötig. Der Angriff passiert, während PHP die eingehende Anfrage noch einliest. Ihre Anmeldeseite, Ihr Sicherheits-Plugin, Ihr Code: nichts davon läuft zu diesem Zeitpunkt.
  • Gepflegte Seiten sind genauso betroffen. Laut php2shell.com reicht schon eine simple „Hello World"-Seite auf einer betroffenen PHP-Version. Wiz hat die Ausführung von Code an aktuellen WordPress-, Drupal- und Joomla-Installationen vorgeführt.
  • Passwörter im Speicher. Auch ohne Codeausführung lässt sich Speicher des PHP-Prozesses auslesen. Darin können Passwörter, Sitzungs-Token und API-Schlüssel anderer Besucher stehen.
  • Kaum Spuren. Laut CrowdStrike stürzt der Prozess nicht ab, der Server antwortet mit einem normalen HTTP 200, und das Anwendungs-Log bleibt unauffällig.

Am riskantesten ist der Betrieb als Apache mit mod_php, also PHP direkt als Apache-Modul. Dort hat das PHP-Projekt die Codeausführung mit Standardeinstellungen bestätigt. Bei PHP-FPM wurde sie über Anwendungspfade bestätigt. Das BSI nennt außerdem php-cgi, FrankenPHP und LiteSpeed als gefährdet.

Welche PHP-Versionen sind von PHP2Shell betroffen?

Betroffen ist laut PHP-Projekt jede Version zurück bis PHP 5.4. Seit dem 21. Oktober 2026 gibt es diese abgesicherten Versionen:

PHP2Shell: sichere PHP-Versionen 8.2.35, 8.3.36, 8.4.27 und 8.5.12

PHP-Zweig Angreifbar Sicher ab
PHP 8.5 bis 8.5.11 8.5.12
PHP 8.4 bis 8.4.26 8.4.27
PHP 8.3 bis 8.3.35 8.3.36
PHP 8.2 bis 8.2.34 8.2.35
PHP 8.1, 8.0, 7.x alle kein offizielles Update

Für 7.4, 8.0 und 8.1 hat das PHP-Projekt nur Quellcode-Patches veröffentlicht, keine fertigen Versionen. Linux-Distributionen und manche Hoster spielen diese Korrekturen nachträglich in ihre Pakete ein. Verlassen sollten Sie sich darauf nicht. Wer noch auf 8.1 oder älter läuft, wechselt am besten direkt auf 8.3 oder 8.4. PHP 8.2 bekommt nur noch bis Ende 2026 Sicherheitsupdates.

Wichtig: Am 23. Oktober hat das PHP-Projekt eine weitere Lücke gemeldet (CVE-2026-115560). Die betrifft nur eine seltene Konfiguration und wird mit dem nächsten regulären Release geschlossen. Die Versionen vom 21. Oktober beheben sie noch nicht. Dazu unten mehr.

PHP2Shell und WordPress: Was Sie wissen müssen

Die häufigste Frage, die uns diese Woche erreicht: „Ich habe WordPress gerade aktualisiert, bin ich jetzt sicher?" Leider nein. WordPress.org hat am 21. Oktober klargestellt, dass für PHP2Shell kein WordPress-Update nötig oder geplant ist. Die Lücke steckt nicht in WordPress, nicht im Theme und nicht in einem Plugin. Das BSI schreibt dazu in seiner Cybersicherheitswarnung ausdrücklich, ein Update der Anwendungen reiche nicht aus, die PHP-Laufzeitumgebung müsse gepatcht werden.

Ein Bild hilft: WordPress ist der Laden, PHP ist das Gebäude. Diesmal ist das Fundament gerissen. Neue Regale im Laden ändern daran nichts.

Auch Sicherheits-Plugins wie Wordfence oder Sucuri sind keine Lösung. Sie starten erst, wenn WordPress startet, und der Angriff kann vorher passieren. Eine Web Application Firewall vor dem Server, etwa bei Cloudflare, filtert bekannte Angriffsmuster heraus. Das ist eine gute Überbrückung, aber kein Ersatz für das Update.

So prüfen Sie die PHP-Version in WordPress

  1. Im WordPress-Dashboard auf Werkzeuge und dann Website-Zustand klicken.
  2. Den Reiter Bericht öffnen und den Abschnitt Server aufklappen.
  3. Unter „PHP-Version" steht die vollständige Nummer, zum Beispiel 8.3.36.
  4. Die Nummer mit der Tabelle oben vergleichen.

Steht dort eine ältere Nummer, heißt das nicht automatisch, dass Ihre Seite offen ist. Debian, Ubuntu und viele Hoster spielen Korrekturen in ihre Pakete ein, ohne die Versionsnummer zu ändern. Dann hilft nur eine schriftliche Nachfrage beim Hoster: „Ist auf meinem Paket der Patch für CVE-2026-109618 und CVE-2026-109619 eingespielt?"

Ein Hinweis für alle mit eigenem Server: php -v auf der Kommandozeile zeigt die Version der Kommandozeile. Apache und PHP-FPM können eine andere Version verwenden. Prüfen Sie deshalb immer das, was die Website tatsächlich nutzt, also den Wert im Website-Zustand oder eine kurz angelegte phpinfo-Seite, die Sie danach wieder löschen.

Wer muss PHP aktualisieren? Hoster, VPS oder eigener Server

Wer handeln muss, hängt davon ab, wie Ihre Website betrieben wird. Hier gibt es die meisten Missverständnisse.

PHP2Shell: wer PHP bei Shared Hosting, VPS und Docker aktualisieren muss

Shared Hosting und Managed WordPress (zum Beispiel IONOS, STRATO, ALL-INKL, Hostinger): Der Hoster betreibt den Server und spielt den Patch ein. Die großen Anbieter haben das nach eigenen Angaben zwischen dem 21. und 22. Oktober erledigt. Ihre Aufgabe: prüfen, welche PHP-Version im Kundenmenü für Ihre Domain eingestellt ist. Steht dort noch 7.4 oder 8.1, stellen Sie um. Viele kleine Firmenwebsites laufen seit Jahren auf der Version, die bei der Einrichtung gewählt wurde.

VPS und Root-Server: Hier sind Sie selbst zuständig. Hostinger, GoDaddy und andere schreiben das unmissverständlich: Auf dem VPS patcht der Kunde. Das gilt auch, wenn die Website „irgendwann mal" von einer Agentur eingerichtet wurde und seitdem niemand mehr draufgeschaut hat.

Docker und Container: Ein laufender Container aktualisiert sich nicht von selbst. Ein WordPress-Container, der im August gebaut wurde, enthält die PHP-Version vom August, auch wenn auf dem Server alle Pakete aktuell sind. Das Image muss neu gezogen oder neu gebaut und der Container neu gestartet werden. Wie man WordPress-Container sauber und aktualisierbar aufsetzt, haben wir in unserem Beitrag zu WordPress mit Docker beschrieben.

Vergessen Sie dabei nicht die Geräte, die man nicht als Webserver wahrnimmt. Das BSI weist darauf hin, dass auch Firewalls, Router und Netzwerkkomponenten mit PHP-basierter Weboberfläche betroffen sein können. Ein NAS mit Weboberfläche, eine alte Zeiterfassung im Intranet, ein Ticketsystem: alles, was PHP spricht und erreichbar ist, gehört auf die Liste.

PHP2Shell schließen: Schritt für Schritt

PHP2Shell Checkliste: WordPress in fünf Schritten absichern

1. PHP aktualisieren

Auf eine der Versionen aus der Tabelle oben oder neuer. Unter Debian und Ubuntu läuft das über die Paketverwaltung (apt update && apt upgrade), danach prüfen Sie, ob die Paketversion den Fix enthält. Bei Containern das Basis-Image aktualisieren und neu bauen. Wer Pakete aus dem Fremd-Repository von remirepo bezieht, sollte laut Fachpresse auf Distributionspakete wechseln oder selbst bauen, dort kamen die Updates nicht rechtzeitig.

2. Alle PHP-Dienste neu starten

Das wird am häufigsten vergessen. Laufende Prozesse behalten den alten Code im Speicher. Starten Sie Apache, jeden PHP-FPM-Pool und alle langlaufenden PHP-Worker neu. Ein Update nur des Kommandozeilen-Pakets erneuert weder das Apache-Modul noch PHP-FPM.

3. Session-Upload-Progress abschalten

Setzen Sie in der php.ini oder in der FPM-Pool-Konfiguration session.upload_progress.enabled = 0 und starten Sie PHP neu. Das schließt einen der Angriffswege von PHP2Shell und schützt laut PHP-Projekt vor der neuen Lücke CVE-2026-115560. Ein ini_set() im Code oder eine .user.ini reicht nicht, die Einstellung muss greifen, bevor PHP die Anfrage liest. Die meisten Websites brauchen die Funktion ohnehin nicht, moderne Fortschrittsbalken beim Hochladen laufen über JavaScript.

4. Zugangsdaten ändern

Weil sich über PHP2Shell Speicher auslesen lässt, ist nach dem Patch nicht klar, ob vorher Passwörter abgeflossen sind. Ändern Sie deshalb:

  • alle WordPress-Administrator-Passwörter,
  • das Datenbank-Passwort (und den Eintrag in der wp-config.php),
  • FTP- und SSH-Zugänge,
  • API-Schlüssel angebundener Dienste, etwa Zahlungsanbieter, Newsletter-Tools oder SMTP-Zugänge.

Erneuern Sie außerdem die Sicherheitsschlüssel (Salts) in der wp-config.php. Damit werden alle angemeldeten Sitzungen beendet, auch die eines möglichen Angreifers.

5. Nach Spuren suchen

Weil der Angriff so leise ist, lohnt der Blick ins PHP-Fehlerprotokoll. Gehäufte Meldungen „Allowed memory size of … bytes exhausted" seit dem 20. Oktober sind ein Warnzeichen. Prüfen Sie außerdem, ob es neue Administrator-Konten, unbekannte Plugins oder kürzlich geänderte PHP-Dateien gibt. Auf Shared Hosting bitten Sie den Hoster, die Protokolle für Sie zu prüfen.

Finden Sie etwas Verdächtiges: nicht selbst aufräumen und weitermachen. Seite vom Netz nehmen, Spuren sichern, dann bereinigen. Wie man in so einer Lage strukturiert vorgeht, steht in unserem Ratgeber zum IT-Notfallplan.

Wenn Sie nicht sofort patchen können

Manchmal geht es nicht sofort, etwa weil eine alte Anwendung nur mit PHP 7.4 läuft. Das PHP-Projekt ist hier deutlich: Das Update ist die einzige vollständige Abhilfe. Bis dahin verkleinern diese Maßnahmen die Angriffsfläche:

  • Session-Upload-Progress abschalten (siehe oben).
  • Eine Web Application Firewall vorschalten. Cloudflare hat nach eigenen Angaben Regeln gegen PHP2Shell in allen Tarifen mit WAF aktiviert.
  • Die Größe von Anfragen und Datei-Uploads vor PHP begrenzen, also im Webserver oder Reverse Proxy.
  • Nicht benötigte Upload-Formulare abschalten.

Das BSI empfiehlt, eine vorübergehende Trennung vom Internet zu erwägen, wenn ein Patch nicht möglich ist. Für eine Firmenwebsite heißt das: lieber zwei Tage eine Wartungsseite als eine kompromittierte Seite, die Kundendaten preisgibt. Für eine dauerhaft auf altem PHP festhängende Anwendung ist PHP2Shell der Anlass, die Modernisierung endlich anzugehen.

Was wir aus PHP2Shell mitnehmen

PHP2Shell zeigt ein Muster, das wir bei kleinen und mittleren Unternehmen im Rheinland immer wieder sehen: Die Website ist da, sie funktioniert, und niemand fühlt sich für die Technik darunter zuständig. Die Agentur hat sie gebaut, der Hoster stellt den Platz, die Plugins aktualisieren sich automatisch. Die PHP-Version läuft dabei oft jahrelang unverändert durch, weil sie nirgendwo als offener Punkt auftaucht.

Drei Fragen sollte jedes Unternehmen nach dieser Woche beantworten können:

  1. Wer ist bei uns dafür zuständig, PHP und Server zu aktualisieren?
  2. Wie erfahren wir von einer kritischen Lücke, bevor es die Kunden tun?
  3. Welche Systeme mit Weboberfläche haben wir außer der Website noch?

Wenn bei einer der Fragen ein Schulterzucken kommt, ist das der eigentliche Handlungsbedarf, unabhängig von PHP2Shell.

Wie EIFBYTE Ihnen bei PHP2Shell hilft

Wir betreuen Unternehmen in Euskirchen, Bonn, Köln und dem ganzen Rheinland. Bei PHP2Shell unterstützen wir Sie ganz praktisch:

  • Prüfung: Wir sehen nach, welche PHP-Version Ihre Website und Ihre übrigen Systeme mit Weboberfläche wirklich nutzen, und ob der Patch drin ist, auch wenn die Versionsnummer das nicht verrät.
  • Update: Auf VPS, Root-Servern und Docker-Umgebungen spielen wir das Update ein, starten alle Dienste neu, schalten Session-Upload-Progress ab und kontrollieren das Ergebnis.
  • Aufräumen: Wir wechseln Passwörter und Salts, prüfen Protokolle und Dateien auf Spuren und sagen Ihnen klar, ob es Hinweise auf einen Einbruch gibt.
  • Dauerhaft: Mit unserem Managed Hosting inklusive WordPress-Betreuung oder unseren Managed IT-Services kümmern wir uns laufend um Updates und Überwachung, damit die nächste Lücke nicht wieder liegen bleibt.

Die Abrechnung läuft nach unseren transparenten Preisen. Wenn Sie vermuten, dass Ihre Seite bereits angegriffen wurde, nutzen Sie unsere IT-Notfall-Soforthilfe. Mehr zu unserem Vorgehen bei Schwachstellen finden Sie auf der Seite IT-Sicherheit.

Häufige Fragen zu PHP2Shell

Muss ich wegen PHP2Shell WordPress aktualisieren?

Nein. WordPress.org hat erklärt, dass für PHP2Shell kein WordPress-Update nötig oder geplant ist. Die Lücke steckt in PHP. Aktualisiert werden muss PHP auf dem Server, entweder durch den Hoster oder durch Sie selbst.

Welche PHP-Version ist sicher?

PHP 8.2.35, 8.3.36, 8.4.27 und 8.5.12 sowie jede höhere Version im selben Zweig. PHP 8.1 und älter bekommen kein offizielles Update mehr. Manche Linux-Distributionen spielen den Fix in ältere Pakete ein, dann bleibt die Versionsnummer gleich.

Hat mein Hoster PHP2Shell schon geschlossen?

Die großen Shared-Hosting-Anbieter haben nach eigenen Angaben zwischen dem 21. und 22. Oktober gepatcht. Auf VPS und Root-Servern sind Sie selbst zuständig. Im Zweifel fragen Sie schriftlich nach, ob der Patch für CVE-2026-109618 und CVE-2026-109619 eingespielt ist.

Schützt ein Sicherheits-Plugin wie Wordfence vor PHP2Shell?

Nein. Der Angriff kann passieren, bevor WordPress und damit das Plugin startet. Eine vorgeschaltete Web Application Firewall kann bekannte Angriffe abfangen, ersetzt aber nicht das PHP-Update.

Woran erkenne ich, ob meine Website angegriffen wurde?

Schwer, denn der Angriff hinterlässt kaum Spuren. Warnzeichen sind gehäufte Meldungen „Allowed memory size exhausted" im PHP-Fehlerprotokoll, neue Administrator-Konten, unbekannte Plugins oder geänderte PHP-Dateien. Wechseln Sie nach dem Patch vorsorglich alle Passwörter.

Was ist CVE-2026-115560?

Eine weitere PHP-Lücke, gemeldet am 23. Oktober 2026. Sie betrifft nur Anwendungen mit einer ungewöhnlichen Session-Konfiguration und wird mit dem nächsten regulären PHP-Release behoben. Bis dahin schützt die Einstellung session.upload_progress.enabled = 0.

Fazit: PHP2Shell ist ein Server-Thema, kein WordPress-Thema

PHP2Shell betrifft fast jede PHP-Website, egal wie gut sie gepflegt ist. Die Lösung ist einfach, wird aber oft an der falschen Stelle gesucht: nicht im WordPress-Dashboard, sondern auf dem Server. Prüfen Sie heute die PHP-Version, lassen Sie den Patch einspielen, starten Sie alle Dienste neu und wechseln Sie die Passwörter.

Wenn Sie unsicher sind, wer bei Ihnen dafür zuständig ist, oder wenn Sie das nicht selbst machen wollen: Sprechen Sie uns an. Wir prüfen Ihre Systeme und bringen sie auf einen sicheren Stand.

bLeiben Sie informiert

Abonnieren Sie unseren Newsletter und verpassen Sie keine Neuigkeiten mehr

About the Author: Tayfun Özdemir

Certified Kubernetes Administrator (CKA), Certified Kubernetes Security Specialist (CKS) & DevOps Engineer DevOps-Engineer aus Leidenschaft mit Spezialisierung auf Cloud-Native-Technologien und Kubernetes. Als Geschäftsführer von EIFBYTE unterstütze ich Unternehmen dabei, Kubernetes sicher, skalierbar und effizient in ihre bestehende Infrastruktur zu integrieren. Mein Ziel ist es, Ihre Bereitstellungsprozesse zu optimieren und Ihre IT-Infrastruktur zukunftssicher aufzustellen.

Share

Schreiben Sie einen Kommentar