PHP2Shell: was es ist und was zu tun ist
PHP2Shell ist der Name von zwei schweren Lücken in PHP selbst, der Sprache vieler Websites. Ein Angreifer ohne Konto kann damit Code auf Ihrem Webserver ausführen oder Daten aus dem Speicher des Servers lesen. Ein PHP-Update behebt beide.
Geprüft am . Regeln vom . Deutsche Zusammenfassung der englischen Anleitungen.
Was PHP2Shell ist
Das PHP-Projekt hat am 21. Oktober 2026 eine Sicherheitsmeldung zu zwei kritischen Lücken veröffentlicht. Die Lücken liegen in PHP, nicht im Code Ihrer Website. Jede hat eine eigene CVE-Nummer:
- CVE-2026-109618: Codeausführung über einen Zustand, den PHP inkonsistent zurücklässt, wenn der Speicher ausgeht.
- CVE-2026-109619: Codeausführung über einen veralteten Zustand, den eine Anfrage an die nächste weitergibt (use-after-free).
Laut php.net ist jede PHP-Installation gefährdet, die Webanfragen bearbeitet, darunter PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed.
Ein Update von WordPress, einem Plugin, einem Theme oder einer anderen Anwendung ändert PHP nicht. Ihr Hoster oder der Administrator des Servers muss das PHP-Update installieren.
Korrigierte Versionen
Ihr Zweig sind die ersten zwei Zahlen Ihrer PHP-Version. Sie brauchen die korrigierte Version Ihres Zweigs oder eine neuere. Die vier Versionen erschienen am 21. Oktober 2026 und beheben beide Lücken.
| Zweig | Korrigierte Version | Status |
|---|---|---|
| 8.5 | 8.5.12 | Unterstützt. |
| 8.4 | 8.4.27 | Unterstützt. |
| 8.3 | 8.3.36 | Unterstützt. |
| 8.2 | 8.2.35 | Unterstützt bis 31. Dezember 2026. Planen Sie den Wechsel zu einem neueren Zweig. |
| 8.1 | keine | Kein Support mehr. Siehe unten. |
| 8.0 | keine | Kein Support mehr. Siehe unten. |
| 7.4 | keine | Kein Support mehr. Siehe unten. |
Manche Distributionen behalten die alte Nummer
Linux-Distributionen und Hoster veröffentlichen eigene korrigierte Pakete. Manche, etwa Ubuntu und das Standard-PHP von RHEL 9, fügen die Korrektur ein und behalten die alte PHP-Nummer. Zum Beispiel korrigiert Ubuntu 24.04 PHP 8.3.6 mit dem Paket 8.3.6-0ubuntu0.24.04.13, und php -v zeigt weiter 8.3.6.
Eine niedrige Nummer heißt nicht immer, dass PHP nicht korrigiert ist.
Vergleichen Sie die Paketversion, nicht nur die PHP-Nummer. Die Seite Fixed PHP packages on Linux (auf Englisch) nennt das korrigierte Paket jeder Distribution.
So sehen Sie Ihre PHP-Version
Beim Shared Hosting sehen Sie im Kundenmenü Ihres Hosters nach oder fragen den Hoster. WordPress, Drupal und ähnliche Anwendungen zeigen die PHP-Version meist im Administrationsbereich.
Auf Ihrem eigenen Server zeigt dieser Befehl die PHP-Version der Kommandozeile. Die Website kann ein anderes PHP nutzen, zum Beispiel PHP-FPM.
php -v
Um das PHP zu sehen, das die Website ausliefert, legen Sie im Web-Stammverzeichnis eine Datei mit einem zufälligen Namen an, der auf .php endet, zum Beispiel info-7f3k9q.php, mit diesem Inhalt:
<?php phpinfo();
Öffnen Sie sie einmal im Browser und lesen Sie die Version oben ab. Löschen Sie die Datei sofort: Sie zeigt viele vertrauliche Daten.
Was zu tun ist
- PHP aktualisieren. Installieren Sie 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 oder eine neuere Version desselben Zweigs. Ein korrigiertes Paket Ihrer Linux-Distribution oder Ihres Hosters genügt auch.
- PHP neu starten. Starten Sie Apache, jeden PHP-FPM-Pool und lang laufende PHP-Prozesse neu. Alte Prozesse behalten den alten Code, bis sie enden.
- Erneut prüfen. Sehen Sie noch einmal die Version des PHP nach, das die Website ausliefert, nicht nur die der Kommandozeile.
Befehle für Ihren eigenen Server
Die Befehle sind dieselben wie in den englischen Anleitungen, mit englischen Kommentaren.
Debian und Ubuntu (setzen Sie Ihren Zweig in den Dienstnamen ein):
# show installed PHP packages and versions
dpkg -l | grep -E '^ii +(php[0-9.]*-(fpm|cgi|common)|libapache2-mod-php)'
# install the update
sudo apt update && sudo apt upgrade
# restart (use your branch, for example php8.3-fpm)
sudo systemctl restart php8.3-fpm
sudo systemctl restart apache2
RHEL, AlmaLinux und Rocky Linux:
# show the installed version (php8.4-common for PHP 8.4 on version 10)
rpm -q php-common
# show which module stream is enabled (marked [e])
dnf module list php
# install the update
sudo dnf upgrade 'php*'
# restart
sudo systemctl restart php-fpm
sudo systemctl restart httpd
Alpine, Container und Hosting-Panels: siehe Linux und Platforms (auf Englisch).
Unser Rat Laden Sie bei einem Container das aktualisierte Basis-Image, bauen Sie Ihr Image neu und erstellen Sie den Container neu. Ein reiner Neustart behält das alte PHP.
Beim Shared Hosting
Sie können PHP nicht selbst aktualisieren, Ihr Hoster schon. Kopieren Sie diese Nachricht, ergänzen Sie Ihre Domain und senden Sie sie an den Support Ihres Hosters:
Guten Tag,
können Sie bestätigen, dass das PHP meines Hostings die Korrekturen für PHP2Shell (CVE-2026-109618 und CVE-2026-109619) enthält? Domain: example.com
Welche genaue PHP-Version und welcher Build liefern meine Domain aus? Ist es 8.5.12, 8.4.27, 8.3.36 oder 8.2.35, eine spätere Version desselben Zweigs oder ein Build mit zurückportierter Korrektur (Backport)?
Wurden PHP-FPM, der Webserver und die übrigen PHP-Prozesse nach dem Update neu gestartet?
Vielen Dank.
PHP 7.4, 8.0 und 8.1
Das PHP-Projekt veröffentlicht für diese Zweige keine Versionen mehr. Sein Sicherheitsteam hat nur kleine Quellcode-Patches veröffentlicht. Für ältere Zweige hat das PHP-Projekt nichts veröffentlicht. Fragen Sie Ihren Anbieter nach einem korrigierten Build oder wechseln Sie zu einem unterstützten Zweig. Siehe PHP 7.4, 8.0 und 8.1 (auf Englisch).
Ihre Website prüfen
Der Prüfer von php2shell.fyi liest, was Ihre Website öffentlich zeigt, und listet die PHP-Signale auf, die er findet. Ein korrigiertes Paket hinter einer alten Nummer kann er nicht sehen. Bestätigen Sie das Ergebnis auf dem Server oder bei Ihrem Hoster.
Der Prüfer, sein Ergebnis und die ausführlichen Anleitungen sind auf Englisch.
Offizielle Meldungen auf Deutsch
Das Bundesamt für Sicherheit in der Informationstechnik (BSI) hat die beiden Lücken als kritisch eingestuft: WID-SEC-W-2026-4055.
CERT.at, das österreichische nationale CERT, hat eine Warnung veröffentlicht: Kritische Sicherheitslücken in PHP - Updates verfügbar.