PHP2Shell: KI findet zehn Jahre alte RCE-Zero-Days im PHP-Core
Frontier-KI-Modelle haben zwei seit über zehn Jahren im PHP-Core verborgene Zero-Day-Schwachstellen zur Remote-Code-Ausführung aufgedeckt, die unabhängig von Schutzmechanismen auf Anwendungsebene sofortige Updates der Runtime erfordern.
Das PHP-Entwicklungsteam und The PHP Foundation haben am 21. Oktober Notfall-Sicherheitsupdates veröffentlicht, um zwei kritische Schwachstellen zur Remotecodeausführung (RCE) in der PHP-Runtime zu beheben. Die unter dem Namen „PHP2Shell“ zusammengefassten Schwachstellen werden als CVE-2026-109618 und CVE-2026-109619 geführt. Beide sind im CVSS v4.0 mit dem Maximalwert 9,2 (Critical) eingestuft und erlauben es unauthentifizierten Angreifern aus der Ferne, über manipulierte HTTP-Anfragen beliebigen Schadcode mit den Rechten des Webservers auszuführen.
Die Fehler wurden nicht durch herkömmliche Code-Audits entdeckt, sondern von Sicherheitsforschern, die Frontier-KI-Modelle zur statischen Analyse von hardwarenahem C-Code eingesetzt haben. Frontier-KI bezeichnet die leistungsfähigsten KI-Modelle.
Ein zehn Jahre alter Fehler im PHP-Kern, aufgedeckt durch KI
Das Sicherheitsunternehmen Calif und der Cloud-Sicherheitsanbieter Wiz haben die Schwachstellen unabhängig voneinander identifiziert und im August 2026 vertraulich gemeldet. Das Team von Calif setzte OpenAIs GPT-5.6 Sol für die statische Code- und Speichersicherheitsanalyse des Interpreters ein.
OpenAI nutzte diesen Fund, um die Initiative „Patch the Planet“ voranzutreiben. Das Projekt soll modernste KI-Modelle gezielt für die defensive IT-Sicherheit mobilisieren, um Maintainern und Infrastrukturbetreibern zu helfen, kritische Lücken zu schließen, bevor sie von Angreifern ausgenutzt werden können.
Beide Schwachstellen schlummerten seit PHP 5.4 unbemerkt im Kern des Interpreters und überdauerten alle Versionen bis hin zu PHP 8.5. Da sie tief in verschachtelten Fehlerbehandlungs- und globalen Bereinigungsroutinen verborgen lagen, blieben sie klassischen Fuzzing-Werkzeugen und manuellen Reviews über ein Jahrzehnt lang verborgen.
OOM-Speicherschäden und globale Zustandsreste: So funktionieren die Lücken
Beide Schwachstellen nutzen Schwachpunkte in der Speicherverwaltung und Fehlerbehandlung des PHP-Runtimesystems aus.
Die erste Schwachstelle, CVE-2026-109618, entsteht bei der Behandlung von Speichermangel (Out-of-Memory, OOM). Wenn ein Skript an sein konfiguriertes memory_limit stößt, ruft PHP die C-Funktion longjmp() auf, um die Ausführung abrupt zu beenden und die Anfrage zu verwerfen. Tritt dieser Speichermangel jedoch während des Parsens von Multipart-Formulardaten oder Dateiuploads auf, bleiben interne Datenstrukturen unvollständig initialisiert. Die Bereinigungslogik behandelt diese ungültigen Pointer irrtümlich als regulären Speicher, was zu Heap-Beschädigungen führt, über die Angreifer den Kontrollfluss übernehmen können.
Die zweite Schwachstelle, CVE-2026-109619, betrifft das Übertragen globaler Zustände über einzelne Anfragen hinweg. Um die Performance zu steigern, verweisen bestimmte globale Pointer im PHP-Kern temporär auf anfragespezifische Speicherbereiche. Bricht eine Anfrage durch einen schwerwiegenden Fehler ab, werden diese globalen Pointer mitunter nicht zurückgesetzt. Es entsteht ein Use-After-Free-Zustand, bei dem auf bereits freigegebenen Speicher verwiesen wird. Verarbeitet derselbe Worker-Prozess eine nachfolgende Anfrage, greift er auf diesen veralteten Zustand zu, was zu Speicherbeschädigungen und potenzieller Schadcodeausführung führt.
Auswirkungen je nach Serverumgebung und das Risiko veralteter Versionen
Da die Schwachstellen direkt im PHP-Interpreter selbst liegen, greifen Schutzmaßnahmen auf Anwendungsebene nicht. Selbst sauber programmierte WordPress- oder Laravel-Instanzen mit fehlerfreier Eingabevalidierung sind angreifbar, sobald der Webserver eine bösartige Anfrage an den Interpreter übergibt.
Das Gefährdungspotenzial unterscheidet sich je nach Architektur:
- Apache mod_php: Stellt das größte Risiko dar. PHP läuft ohne Prozessisolierung direkt im Speicher des Webservers, sodass unauthentifizierte Anfragen den Serverdienst unmittelbar kompromittieren können.
- PHP-FPM und FastCGI: Hier werden Worker-Prozesse über viele Anfragen hinweg wiederverwendet. Angreifer können gezielt einen OOM-Zustand auslösen, um einen Worker zu korrumpieren, und in einer Folgeanfrage Code ausführen.
Eine noch größere Herausforderung ist die Verteilung der Sicherheitsupdates:
| Branch | Status | Gepatchte Version |
|---|---|---|
| PHP 8.5 | Aktiv unterstützt | 8.5.12 |
| PHP 8.4 | Aktiv unterstützt | 8.4.27 |
| PHP 8.3 | Nur Sicherheitsupdates | 8.3.36 |
| PHP 8.2 | Nur Sicherheitsupdates | 8.2.35 |
| PHP 8.1 und älter | End of Life (EOL) | Kein offizieller Upstream-Patch |
Ein beträchtlicher Teil der weltweiten Webseiten läuft nach wie vor auf älteren Versionen wie PHP 7.x, 8.0 oder 8.1. Da das Upstream-Projekt keine Sicherheitsupdates für veraltete Zweige bereitstellt, bleiben diese Systeme dauerhaft verwundbar, solange keine Migration auf eine unterstützte Version erfolgt.
Patch-Prioritäten und sofortige Schutzmaßnahmen
Sicherheitsbehörden wie die US-amerikanische CISA raten dringend dazu, alle öffentlich erreichbaren PHP-Server unverzüglich zu aktualisieren. Betreiber sollten folgende Schritte einleiten:
- Pakete unverzüglich einspielen: Die Betriebssystem-Pakete oder Container-Basis-Images sofort auf die Versionen 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 anheben.
- EOL-Versionen isolieren und migrieren: Bei PHP 8.1 oder älter muss der Umstieg auf eine unterstützte Version priorisiert werden. Bis dahin sollten Web Application Firewalls (WAF) vorgeschaltet werden, die Dateiuploads und übergroße Anfragen blockieren.
- Worker-Recycling erzwingen: Als Übergangsmaßnahme bei PHP-FPM kann
pm.max_requestsauf 1 oder einen sehr niedrigen Wert gesetzt werden. Dadurch wird der Worker-Prozess nach jeder Anfrage neu gestartet, was das Risiko durch veraltete globale Pointer (CVE-2026-109619) minimiert, auch wenn dies zu Lasten der Rechenleistung geht.
Worauf jetzt zu achten ist
Der Vorfall zeigt, dass KI-gestützte Sicherheitsforschung den experimentellen Rahmen verlassen hat und die Absicherung kritischer Infrastrukturen maßgeblich verändert. Automatisierte Systeme sind nun in der Lage, jahrzehntealte Schwachstellen in Low-Level-C-Code aufzuspüren, die Generationen menschlicher Prüfer entgangen waren.
Gleichzeitig wächst jedoch das Risiko, dass auch Angreifer dieselben Modelle nutzen, um massenhaft Zero-Days in Open-Source-Projekten zu suchen. Ob Entwickler-Communitys und Infrastrukturbetreiber mit diesem Tempo der Lückenfindung Schritt halten können, wird die zentrale Bewährungsprobe für moderne Softwaresysteme sein.
Quellen
Quelle: thephp.foundation