PHP2Shell ohne PHP-Entwickler beheben: Zugänge wiederherstellen, Backups testen und die Laufzeit bestimmen. Danach zwischen gepatchtem PHP, Migration und statischem Archiv entscheiden.

01

Zugriff und Verantwortung zurückgewinnen

Registrar, Hosting, Server/Panel, Quellcode, Datenbankzugang und Rechnungsverantwortliche erfassen. Wartung und Wiederherstellung einer Person zuordnen. Anwendung und genaue Version anhand lokaler Dateien bestimmen. Fehlende Konten oder Quellen vor einem PHP-Wechsel wiederherstellen.

02

Beweise sichern und Wiederherstellung proben

Bei Verdacht Zugriffs-, Fehler- und Anwendungslogs vor der Bereinigung sichern. Code, Datenbank, Uploads, Konfiguration und Zeitpläne als datierten Satz verschlüsselt und zugriffsbeschränkt speichern. Kodierung notieren. Privat wiederherstellen und Inhalte sowie Anmeldung prüfen; eine Erfolgsmeldung reicht nicht.

Ein Patch schließt einen Einbruch nicht aus ↗

03

PHP-Generationen einzeln prüfen

PHP 5.3/5.6 kann entfernte APIs nutzen. PHP 7 entfernt ext/mysql; PHP 8 entfernt each()/create_function() und verschärft Typen/Signaturen; PHP 8.2 meldet dynamische Eigenschaften als veraltet. Jede übersprungene Migrationsanleitung lesen. Historische Mindestwerte sind keine Betriebsempfehlung und kein Test eigener Anpassungen.

04

Reparatur, Migration oder Archiv wählen

Ein belegter Herstellerpatch kann Zeit für die Migration schaffen; beide CVEs und laufenden Support prüfen. Nicht unterstütztes PHP braucht ein unterstütztes Ziel, keine dauerhafte WAF-Ausnahme. Gepflegte Anwendungen reparieren, verlassene Abhängigkeiten ersetzen. Für reine Inhalte statisches Archiv erwägen und dynamische Anmeldung, Suche und Formulare ersetzen.

05

Private realistische Testumgebung bauen

Web-PHP, Erweiterungen, INI, Datenbank und Routing dem Ziel anpassen. Bereinigte Kopien abschirmen; echte E-Mails, Zahlungen und Produktions-Webhooks verhindern. Framework, Plugins und Eigenentwicklungen gemeinsam testen. Produktspezifische Abnahme und Logs dokumentieren; Betreiber können diese Nachweise vom Hoster verlangen.

06

Rollback mit Datenänderungen planen

Passende Dateien und Datenbank sichern. PHP zurückzustellen macht keine Schemaänderung rückgängig. Schreibpause oder getestete Synchronisierung vereinbaren, Fehlerkriterien, Verantwortliche und Zeitlimit festlegen. Neue Bestellungen nach dem Snapshot berücksichtigen und Wiederherstellung samt Abgleich proben.

07

Tatsächliche Dienste nach Umstellung prüfen

Web-PHP, alle FPM-Pools, Queues, Zeitpläne, Container und Replikate prüfen; alte Worker ersetzen. Beide CVEs durch Upstream-Versionen oder Herstellerhinweise belegen. Unterseiten, Login, Uploads und Geschäftsabläufe testen, Logs und Rollback-Fenster behalten. CLI und Startseite reichen nicht.

PHP2Shell-Patches prüfen ↗

Funktionstests nach dem PHP2Shell-Fix

Anmeldung, Sitzungen und Rollen

Anmeldung, Abmeldung und Passwortwechsel mit Testkonto prüfen; Sitzungen, Adminrechte und Rollen nach neuer Browsersitzung testen.

Unterseiten und HTTP-Status

Bestehende Unterseite, Formular und fehlende Seite aufrufen; Parameter, Weiterleitungen und HTTP-Status vergleichen.

Datenbankzugriffe und Transaktionen

Repräsentative Daten in der Testdatenbank lesen/schreiben; Treiber, striktes SQL, Transaktionen und Rücklesen prüfen.

Eigene Vorlagen und Escaping

Artikel-, Listen-, Konto- und Fehlervorlagen rendern; eigene Tags, Escaping, Cache und Warnungen kontrollieren.

Uploads und Vorschaubilder

Harmloses Testbild hochladen, Vorschaubild abrufen und löschen; Rechte, Pfade und URLs prüfen, ausführbare Uploads weiter sperren.

Alte und neue Queue-Jobs

Neue und vorhandene Jobs mit neuem Worker verarbeiten; Serialisierung, Wiederholung und doppelte Aktionen prüfen.

Zeitpläne und PHP-Pfade

Tatsächliche PHP-Datei, INI und Benutzer des Schedulers prüfen; harmlose Aufgabe im Test ausführen und nach Umstellung vergleichen.

Kalte/warme Caches und OPcache

Caches nach Dokumentation neu bauen; kalte/warme Anfragen, alte Serialisierungen und OPcache-Prozesse prüfen.

Testmail-Zustellung

Testmails an einen Mail-Sink senden; Vorlagen, Warteschlange und Transport ohne echte Kunden prüfen.

Bestellungen, Steuer und Bestand

Sandbox-Bestellung mit Versand, Steuer, Rabatt und Erstattung testen; Summen, Bestand und Historie vergleichen.

Sandbox-Zahlungen und Rückrufe

Erfolg, Fehler und asynchrone Zahlungsnachricht im Sandbox-Modus testen; Signatur und Idempotenz gegen Doppelbuchungen prüfen.

Websites, Domains und Sprachen

Jede Website, Domain und Sprache mit passender Rolle prüfen; Cookies, URL-Zuordnung und Konfiguration vergleichen.

GBK/UTF-8 und Datenprüfung

Sonderzeichen durch Formular, Datenbank und Export prüfen; GBK/UTF-8 bis zur separat getesteten Konvertierung bewahren.

API-Verträge und Rückrufe

API mit und ohne Anmeldung prüfen; JSON-Typen, Fehler, HTTP-Status und Rückrufe vergleichen.

Web/CLI-Erweiterungen und ABI

Erweiterungen in Web und CLI mit passender ABI/NTS/ZTS prüfen; Treiber und Dienste tatsächlich testen.

PHP2Shell-Patches prüfen

Anwendungskompatibilität, Wartungsstatus und PHP-Sicherheit getrennt prüfen. Einen unterstützten PHP-Zweig mit beiden CVE-Korrekturen wählen und alle Web-Worker, geplanten Aufgaben und Replikate kontrollieren. Ein Framework- oder Plugin-Update ersetzt PHP nicht.

Vier Zweige. Klare Update-Ziele.
PHP-ZweigUpstream-Versionen unterErste korrigierte VersionEnde der Sicherheitsupdates
PHP 8.5< 8.5.12✓ 8.5.1231. Dez. 2029
PHP 8.4< 8.4.27✓ 8.4.2731. Dez. 2028
PHP 8.3< 8.3.36✓ 8.3.3631. Dez. 2027
PHP 8.2< 8.2.35✓ 8.2.3531. Dez. 2026
Noch PHP 8.1 oder älter?

Für diese Zweige gibt es keine reguläre PHP-Veröffentlichung. Minimale Quellcode-Backports existieren für 7.4, 8.0 und 8.1. Herstellerunterstützung separat prüfen. Anleitung lesen ↗

Originalquelle

PHP security teamOriginalquelle ↗CVE-2026-109618Originalquelle ↗CVE-2026-109619Originalquelle ↗PHP 7.0Originalquelle ↗PHP 8.0Originalquelle ↗PHP 8.2Originalquelle ↗PHPOriginalquelle ↗ComposerOriginalquelle ↗
PHP2Shell beheben - PHP-Upgrade-Fehler lösen ↗← Zurück zu den Anwendungsleitfäden