PHP2Shell auf Debian und Ubuntu beheben: PHP-Pakete aktualisieren
Kurz gesagt: Systemupdates einspielen, PHP-FPM bzw. Apache neu starten und prüfen, ob die Website die neue Version nutzt. Debian und Ubuntu reparieren Lücken oft, ohne die Versionsnummer zu erhöhen. Lassen Sie sich davon nicht verwirren.
Für wen ist diese Anleitung?
Für Administratoren eines eigenen Servers (Root-Server, vServer, Cloud-Server) mit Debian oder Ubuntu. Sie brauchen SSH-Zugang mit Administratorrechten.
Sie sind Geschäftsführer oder Büroleitung und betreuen den Server nicht selbst? Leiten Sie diese Seite an Ihren IT-Dienstleister weiter und fragen Sie, bis wann das Update eingespielt ist. Lesen Sie selbst den Abschnitt zu den Risiken.
Schritt 1: Herausfinden, woher PHP kommt
PHP kommt auf Debian und Ubuntu aus einer von zwei Quellen:
- Aus der Distribution selbst (z. B. PHP 8.2 bei Debian 12, PHP 8.3 bei Ubuntu 24.04). Debian und Ubuntu liefern Sicherheitskorrekturen nach.
- Aus einer Zusatzquelle wie
packages.sury.org(Debian) oderppa:ondrej/php(Ubuntu). Diese liefern die offiziellen PHP-Versionen, also 8.5.12, 8.4.27, 8.3.36 oder 8.2.35.
Das zeigt Ihnen:
apt policy php8.3-fpm # Versionsnummer an die eigene Version anpassen
Welche PHP-Versionen installiert sind:
dpkg -l 'php*-fpm' 'libapache2-mod-php*' | grep ^ii
Schritt 2: Updates einspielen
sudo apt update
sudo apt upgrade
apt upgrade aktualisiert alle Pakete. Wenn Sie zunächst nur PHP aktualisieren möchten:
sudo apt install --only-upgrade 'php8.3*'
Schritt 3: PHP-FPM und Apache neu starten
Laufende PHP-Prozesse nutzen weiter das alte Programm, bis sie neu gestartet werden. Das ist bei PHP2Shell besonders wichtig.
systemctl list-units 'php*-fpm*' # welche PHP-FPM-Dienste laufen
sudo systemctl restart php8.3-fpm # für jede laufende Version
sudo systemctl restart apache2 # wenn Apache mit mod_php läuft
Schritt 4: Prüfen, ob die Korrektur drin ist
Bei Paketen aus Debian oder Ubuntu bleibt die Versionsnummer oft gleich, etwa 8.2.x. Die Korrektur steht im Änderungsprotokoll des Pakets:
apt changelog php8.2-fpm | grep -m3 'CVE-2026-10961[89]'
Erscheinen beide CVE-Nummern, ist das Paket korrigiert. Bei der Sury- oder Ondřej-Quelle zeigt php -v direkt eine der abgesicherten Versionen.
Wichtig: php -v auf der Kommandozeile kann eine andere Version zeigen als der Webserver. Maßgeblich ist, was PHP-FPM bzw. Apache ausführt.
Für alte Versionen gibt es keine Pakete
Läuft Ihre Website mit PHP 7.4, 8.0 oder 8.1 aus einer Zusatzquelle, gibt es dafür keine offiziellen Updates mehr. Auch ältere Debian- und Ubuntu-Versionen, deren Unterstützung abgelaufen ist, bekommen keine Korrektur. Lesen Sie dann alte PHP-Version.
Welche Risiken hat das PHP-Update?
Das reine Sicherheitsupdate derselben PHP-Version ist risikoarm. Was trotzdem passieren kann:
- Kurze Unterbrechung beim Neustart von PHP-FPM oder Apache. Laufende Anfragen, zum Beispiel ein Upload, können abbrechen. Planen Sie den Neustart außerhalb der Hauptgeschäftszeit.
apt upgradeaktualisiert auch andere Programme, etwa die Datenbank. Lesen Sie die Liste, die apt vor dem Bestätigen anzeigt.- Geänderte Konfiguration: Fragt apt, ob eine Konfigurationsdatei ersetzt werden soll, wählen Sie im Zweifel „beibehalten“. Sonst gehen eigene Einstellungen verloren.
Der Wechsel auf eine neue Hauptversion (z. B. von 7.4 auf 8.2) ist dagegen ein Projekt:
- Alter Programmcode kann Fehlerseiten oder weiße Seiten auslösen.
- Erweiterungen müssen für die neue Version installiert werden (
php8.2-mysql,php8.2-gd, …), sonst fehlen Funktionen. - Eigene Einstellungen in
/etc/php/<version>/müssen übertragen werden. - Der Webserver muss auf die neue Version zeigen (PHP-FPM-Socket bzw. Apache-Modul).
So senken Sie das Risiko:
- Snapshot oder Backup des Servers vor dem Update. Bei Cloud-Servern dauert ein Snapshot wenige Minuten.
- Zuerst auf einer Testumgebung oder einer Kopie der Website testen.
- Ein Wartungsfenster festlegen und die Beteiligten informieren.
- Nach dem Update testen: Startseite, Formulare, Login, Bestellung, Cronjobs.
- Notfallplan: Bei einem Hauptversionswechsel bleibt die alte Version installiert, bis Sie sie entfernen. Sie können den Webserver also schnell zurückschalten.
Schritt 5: Auf Einbruchsspuren prüfen
Prüfen Sie Webserver-Logs ab dem 1. August 2026. Achten Sie auf unbekannte PHP-Dateien im Webverzeichnis (find /var/www -name '*.php' -newermt 2026-08-01), neue Cronjobs (crontab -l -u www-data) und Prozesse des Benutzers www-data.
So prüfen Sie, ob es geklappt hat
Prüfen Sie Ihre Website mit unserem kostenlosen Check. Bei Distributionspaketen kann das Ergebnis „Wahrscheinlich betroffen“ lauten, obwohl Sie gepatcht haben, weil die Versionsnummer gleich geblieben ist. Maßgeblich ist dann das Änderungsprotokoll aus Schritt 4.
Fragen oder Probleme beim Update?
Sie sind unsicher, ob Ihre Website das Update verträgt, oder nach dem Update funktioniert etwas nicht mehr? Schreiben Sie uns. Wir sehen uns Ihre Website an und sagen Ihnen ehrlich, was zu tun ist, auch wenn Sie das Update am Ende selbst machen.