Entfernte APIs, Paketkonflikte, fehlende Erweiterungen und Gateway-Fehler dürfen den PHP2Shell-Fix nicht verhindern. Betrieb mit gepatchtem PHP wiederherstellen und beide CVEs prüfen.
01
Entfernte mysql_*, each und create_function
PHP des fehlgeschlagenen Requests bestimmen. ext/mysql entfiel in PHP 7, each()/create_function() in PHP 8. Gepflegte Komponente aktualisieren oder privat refaktorieren. PDO/mysqli muss Parameterbindung und Transaktionen bewahren. Keine blinden Namensersetzungen oder unbekannten Kompatibilitätspatches.
02
TypeError und inkompatible Methoden
Vollständigen Fehler und Stacktrace geschützt erfassen. Eigene Methoden mit Elternklasse/Interface und geänderten Typregeln vergleichen. Zuständiges Paket aktualisieren oder getesteten Code korrigieren. Typdeklarationen nicht pauschal entfernen; Details nicht öffentlich ausgeben.
03
Dynamische Eigenschaften unter PHP 8.2
Eine Veraltungswarnung beweist weder RCE noch Einbruch. Erzeugende Klasse finden, gepflegte Version oder bewusste Eigenschaftsänderung nutzen. Serialisierung und ORM testen. Warnungen privat protokollieren und Ursachen beheben; Fehlerunterdrückung behebt PHP2Shell nicht.
04
Composer-Plattformkonflikt
composer.json/lock behalten, gesperrte Pakete prüfen und check-platform-reqs --lock in vertrauenswürdiger Kopie nutzen. prohibits zeigt Blockaden. config.platform simuliert nur die Auflösung, nicht das laufende PHP. --ignore-platform-reqs beweist keine Kompatibilität. Lock-Änderungen vor Einsatz prüfen und testen.
05
Fehlende Erweiterung oder Datenbanktreiber
INI/Module von CLI und Web/FPM getrennt vergleichen. Vertrauenswürdige Builds passend zu PHP, Architektur und NTS/ZTS installieren und im richtigen Dienst laden. Worker kontrolliert erneuern, Verbindung/Funktion tatsächlich testen. CLI-Module garantieren keine Web-Module.
06
502, leere Seite oder altes PHP
Web-Upstream-, FPM-Start- und Anwendungslogs zeitlich abgleichen. Socket/Port, Poolrechte, Dienst und Binary prüfen; inkompatible Erweiterungen können Starts verhindern. Konfiguration vor kontrolliertem Reload testen. Logs erhalten; ein 502 allein beweist keinen Angriff.
07
Kodierung, Links und Daten
Quellkodierung, DB-Zeichensatz/Kollation, Export, Rewrites und Speicherpfade getrennt prüfen. GBK-Konvertierung privat proben und Felder, Anhänge, URLs vergleichen. Keine pauschale Ersetzung in serialisierten Daten. Alte Pfade bewahren oder überprüfte Weiterleitungen planen.
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.
| PHP-Zweig | Upstream-Versionen unter | Erste korrigierte Version | Ende der Sicherheitsupdates |
|---|---|---|---|
| PHP 8.5 | < 8.5.12 | ✓ 8.5.12 | 31. Dez. 2029 |
| PHP 8.4 | < 8.4.27 | ✓ 8.4.27 | 31. Dez. 2028 |
| PHP 8.3 | < 8.3.36 | ✓ 8.3.36 | 31. Dez. 2027 |
| PHP 8.2 | < 8.2.35 | ✓ 8.2.35 | 31. Dez. 2026 |
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 ↗