PHP2Shell — ein Speicherfehler im PHP-Kern
Über diese App
Ein Konzept-Modell der PHP-Lücke „PHP2Shell": Ein PHP-Worker teilt seinen Speicher über viele Anfragen. Bricht eine Anfrage wegen Speichermangel ab, zeigt ein globaler Zeiger weiter in den freigegebenen Speicher. Die nächste Anfrage belegt ihn neu — und der hängende Zeiger schreibt das Passwort eines fremden Besuchers ins PHPSESSID-Cookie des Angreifers. Schritt für Schritt, mit Patch-Schalter. Nur Prinzip, keine Exploit-Details.
Mit Erklärmodus: Ein KI-Tutor führt dich durch die App, zeigt in der Szene, worauf es ankommt, und beantwortet deine Fragen.
Was PHP2Shell ist
PHP2Shell sind zwei Sicherheitslücken im PHP-Kern, veröffentlicht am 21. Oktober 2026 (CVE-2026-109618 und CVE-2026-109619, beide mit dem höchsten Schweregrad CVSS 9,2 und ohne Anmeldung ausnutzbar). Beide sind sogenannte Use-after-free-Fehler. Ein PHP-Worker (PHP-FPM oder Apache mod_php) bearbeitet viele Anfragen nacheinander im selben Speicher. Bricht eine Anfrage mit einem fatalen Fehler ab, meist weil sie das memory_limit überschreitet, endet der native Code, bevor er aufräumt: Der Request-Speicher wird freigegeben, ein globaler Zeiger zeigt aber weiter hinein. Die nächste Anfrage im selben Worker behandelt diesen inzwischen neu belegten Speicher als gültig.
Was die App zeigt
Links warten drei Anfragen, in der Mitte ein PHP-Worker mit dem Request-Speicher als Zellenraster, einer memory_limit-Anzeige und dem globalen Zeiger session.upload_progress, rechts die Antwort mit dem Cookie PHPSESSID. In sechs Schritten füllt Anfrage A den Speicher bis ans Limit, PHP bricht ab und gibt den Speicher frei, der Zeiger hängt, Anfrage B (ein Login) belegt dieselben Zellen mit einem Passwort neu, und Anfrage C (der Angreifer) löst beim Start die Aufräumroutine aus. Der hängende Zeiger schreibt die fremden Bytes url-kodiert ins Cookie — man sieht das Passwort im Cookie des Angreifers landen.
Selbst ausprobieren
Geh die sechs Schritte einzeln durch oder spiel sie ab und beobachte den Zeiger, den Füllstand und das Cookie. Schalte „Gepatcht“ ein: Der Zeiger wird beim Abbruch genullt, und das Cookie bleibt normal. Stell session.upload_progress aus, um eine Übergangsmaßnahme zu sehen, die diesen einen Weg schließt. Wechsle von „Lesen“ auf „Überschreiben“, um statt des Lecks die Speicherkorruption der zweiten Lücke zu sehen. Das Modell erklärt nur das Prinzip – es enthält keine Exploit-Details.
Häufige Fragen
- Was ist ein Use-after-free?
- Ein Programm gibt einen Speicherbereich frei, benutzt ihn danach aber über einen alten Zeiger weiter. Freigegeben heißt nur: als frei markiert und gleich wiederverwendbar. Legt inzwischen etwas anderes dort seine Daten ab, liest oder überschreibt der alte Zeiger fremde Daten. Genau das passiert bei PHP2Shell nach einem Abbruch wegen Speichermangel.
- Hilft sauberer Anwendungscode gegen PHP2Shell?
- Nein. Alle bekannten Auslöser sind multipart/form-data-Anfragen, und PHP zerlegt diesen Rumpf beim Anfragestart, bevor Anwendungscode läuft. Der Fehler sitzt im PHP-Kern selbst. Deshalb schützt auch ein Wartungsmodus der Anwendung nicht.
- Welche PHP-Versionen sind betroffen und was muss ich tun?
- Fehlerhafter Code steckt seit PHP 5.4.0 (2012) im Kern, die Standardkonfiguration ist verwundbar. Behoben ist es in PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 vom 21. Oktober 2026. Updaten ist die einzige vollständige Abhilfe; prüfen kannst du die Version mit php -v oder phpinfo über den Webserver.
- Was kann ich in der App ausprobieren?
- Die sechs Schritte einzeln anwählen oder abspielen, zwischen Lesen (Leck) und Überschreiben (Korruption) wechseln, PHP gepatcht gegen ungepatcht vergleichen und session.upload_progress an- und ausschalten, um die Wirkung der Übergangsmaßnahmen am Modell zu sehen.
Fach: Informatik
Mehr aus Informatik
- Ackermann-Funktion
- Aufzug-Simulator
- Binär-Werkstatt
- Binäre vs. lineare Suche
- Collatz-Problem (3n+1)
- CPU-Innenleben
- Das Innere austauschen
- Ein Frame in 16 Millisekunden — wie eine Game-Engine ein Bild rechnet (3D)
Eine VisuApp von heyprof: interaktiv, kostenlos im Browser, ohne Anmeldung. Was ist eine VisuApp? · Alle Apps