Angriffe begannen sechs Stunden vor dem Patch: Zwei kritische PHP-Schwachstellen mit Score 9.2

Angriffe begannen sechs Stunden vor dem Patch: Zwei kritische PHP-Schwachstellen mit Score 9.2

CybersicherheitSchwachstellenanalysePHPOpen-Source-Ökosystem

Quellen:HN + web research

In der IT-Sicherheitsbranche gilt seit vielen Jahren ein ungeschriebenes Gesetz: Nach der Entdeckung einer Schwachstelle werden Vertraulichkeitsvereinbarungen geschlossen, Verteidiger entwickeln diskret Fehlerkorrekturen, alle Beteiligten veröffentlichen ihre Erkenntnisse zu einem fest vereinbarten Zeitpunkt, und Administratoren installieren die Patches in geordneten Bahnen. Dieses koordinierte Zusammenspiel hielt die Systeme verlässlich im Gleichgewicht.

Am 21. Oktober 2026 brach dieses Modell zusammen. Stunden bevor die offiziellen Sicherheitsupdates bereitstanden, registrierten die Überwachungssysteme von Cloudflare bereits reale Angriffswellen im Produktivnetz. Die Angreifer warteten nicht ab, bis die Schlösser ausgetauscht waren.

Rund 21 Stunden zuvor waren technische Einzelheiten zu zwei schweren Schwachstellen in Entwicklerforen durchgesickert. Die unter dem Namen „PHP2Shell“ bekannt gewordene Krise versetzte Webadministratoren weltweit in helle Aufregung. Zwar wurde der ursprüngliche Leak-Beitrag rasch gelöscht, doch mehrere Sicherheitsunternehmen bestätigten umgehend die Echtheit der Exploit-Mechanismen. Die Verteidiger erfuhren somit erst dann von den technischen Details, als Angreifer bereits funktionsfähige Werkzeuge im Einsatz hatten.

Angriffe starteten vor Freigabe der Patches

Die beiden Schwachstellen werden unter den Kennungen CVE-2026-109618 und CVE-2026-109619 geführt. Das PHP-Projekt stufte die Dringlichkeit nach CVSS v4.0 mit einem Wert von 9,2 ein; die Sicherheitsfirma watchTowr vergab sogar die Höchstwertung von 10,0. In dieser Risikokategorie genügt die schlichte Erreichbarkeit eines Servers über das Internet, um das System einer unmittelbaren Gefährdung durch vollständige Kontrollübernahme auszusetzen.

Das Leck nahm am 20. Oktober um 15:20 Uhr UTC seinen Anfang, als ein Nutzer namens petecooper Vorabinformationen zum Patch veröffentlichte. Kurz darauf zirkulierten Test-Skripte unter dem Namen Calif Research in technischen Foren, und Ingenieure wiesen die Wirksamkeit unter realen Betriebsbedingungen nach. Am 21. Oktober um 07:43 Uhr UTC meldete Cloudflare erste Angriffsversuche im öffentlichen Netz – mehr als sechs Stunden vor dem offiziell geplanten Release-Zeitfenster. Die regulären Patches folgten plangemäß erst um 14:00 Uhr UTC (22:00 Uhr Pekinger Zeit).

Damit klaffte zwischen dem Bekanntwerden des Exploits und den ersten Angriffswellen ein Zeitfenster von 16 Stunden, in dem Administratoren keinerlei offizielle Gegenmittel zur Verfügung standen.

Ein einziger Datei-Upload genügt zur Serverübernahme

Der Fehler wurzelt in einem grundlegenden Baustein moderner Webanwendungen: dem Datei-Upload. Wenn Anwender Profilbilder austauschen, Anhänge versenden oder Formulare mit Dokumenten einreichen, bündelt der Browser die Daten im Format multipart/form-data und übergibt sie direkt an den Backend-Interpreter.

Die Schwachstelle liegt in jenen PHP-Routinen, die für das Zerlegen und Parsen dieser Multipart-Anfragen verantwortlich sind. Sendet ein Angreifer ein gezielt manipuliertes Datenpaket, provoziert dies eine Speicherbeschädigung auf Systemebene, über die anschließend beliebige Befehle auf dem Zielsystem ausgeführt werden können. Das Sicherheitsunternehmen Sansec fasste den Angriffsvektor prägnant zusammen: Ein einziger unauthentifizierter POST-Aufruf genügt – ohne Benutzeranmeldung und ohne Vorbedingungen.

Ausschlaggebend ist der Ausführungszeitpunkt: Die Beschädigung tritt auf, noch bevor der eigentliche Anwendungscode erreicht wird. Ob Content-Management-Systeme wie WordPress, WooCommerce oder Magento eigene Sicherheitsvorkehrungen treffen, spielt keine Rolle. Da fast 40 Prozent aller Websites auf WordPress aufbauen, gerät jeder Server mit aktivierter PHP-Upload-Funktionalität unmittelbar in die Gefahrenzone.

Tenable FAQ-Header Abb.: Offizielle FAQ des Sicherheitsunternehmens Tenable zu den beiden kritischen Remote-Code-Execution-Schwachstellen. Quelle: Tenable

Wartungsseiten bieten keinen Schutz

In akuten Notlagen schalten Administratoren ihre Webdienste gewöhnlich in den Wartungsmodus und blenden Hinweisseiten ein, um externen Zugriff abzuschirmen. Gegen PHP2Shell erweist sich diese Maßnahme als wirkungslos: Da Wartungsseiten selbst über die PHP-Laufzeitumgebung ausgeliefert werden, schlägt das schädliche Datenpaket bereits im Interpreter-Parser zu, bevor die eigentliche Anwendungslogik greift. Solange der PHP-Dienstprozess aktiv Anfragen verarbeitet, bleibt das System verwundbar.

Um die Zeit bis zur Patch-Bereitstellung unbeschadet zu überstehen, blieben Administratoren nur schmerzhafte betriebliche Einschnitte. Zu den wenigen Optionen gehörte das vollständige Abfangen und Verwerfen sämtlicher Upload-Anfragen auf Ebene von Nginx oder Apache – was Kernfunktionen wie Profilaktualisierungen oder Produkteinstellungen lahmlegt. Alternativ konnten Ursprungsserver so abgeriegelt werden, dass ausschließlich Cloudflare-IPs Zugang erhielten, um den Datenverkehr durch die WAF zu zwingen. Dies greift jedoch ins Leere, sobald die tatsächliche IP-Adresse des Servers Angreifern bekannt ist. Als radikalste Notmaßnahme blieb das vollständige Beenden des PHP-Dienstes und der Übergang zu rein statischen HTML-Seiten.

Über die Konfigurationsdatei php.ini ließen sich Angriffsflächen verkleinern: durch das Deaktivieren von session.upload_progress.enabled sowie das Aktivieren von session.use_strict_mode. Die PHP-Release-Manager wiesen jedoch ausdrücklich darauf hin, dass solche Stellschrauben das Restrisiko lediglich dämpfen und das Einspielen eines echten PHP-Updates keinesfalls ersetzen.

Wenige Stunden vor der Veröffentlichung der Patches griffen das niederländische Parlament, das nationale Cyber-Sicherheitszentrum NCSC-NL sowie das Technikmagazin Tweakers zum drastischsten Schritt: Sie nahmen ihre Websites vollständig vom Netz. Wie Cloudflare-CTO Dane Knecht treffend bemerkte, sind WAF-Filterregeln in solchen Szenarien lediglich ein provisorischer Druckverband.

Millionen älterer Server bleiben ohne Update

Könnte das Problem allein durch ein Update gelöst werden, wäre die Lage weit weniger brisant. Der Sicherheitsforscher Silas Cutler schätzt, dass weltweit rund 1,3 Millionen PHP-Instanzen direkt über das öffentliche Internet erreichbar sind – bevorzugte Ziele automatisierter Scanning-Werkzeuge.

Das zentrale Problem: Ein beträchtlicher Teil dieser Installationen wird niemals einen offiziellen Fix erhalten. Die offizielle Support-Strategie des PHP-Projekts deckt ausschließlich aktiv gepflegte Entwicklungszweige ab; Updates wurden dementsprechend nur für PHP 8.2 und neuere Versionen freigegeben. Ältere Zweige wie 5.x, 7.x, 8.0 und 8.1 haben ihr Lebensende (End-of-Life) längst überschritten. Dennoch treiben sie in zahlreichen Unternehmen unverändert kritische Produktivanwendungen an – oft eingekapselt in veralteten Container-Images, die niemand anzufassen wagt.

Die Entwicklerteams übergeordneter Frameworks reagierten blitzschnell: WordPress lieferte Version 7.1.3 aus, Drupal aktualisierte auf 11.4.10, Laravel stellte 13.36.0 bereit, und auch MediaWiki, phpBB, Magento sowie Symfony zogen am selben Tag nach. Doch wenn der fundamentale Interpreter verwundbar bleibt, können Schutzmechanismen auf Anwendungsebene das Problem nicht heilen.

In Enterprise-Linux-Umgebungen kam es zu zusätzlichen Reibungsverlusten. Das verbreitete Remi-RPM-Repository kündigte an, am Veröffentlichungstag keine fertigen Pakete bereitzustellen. RHEL- und Enterprise-Anwender mussten entweder auf verzögerte Backports ihrer Distributionen warten oder den Quellcode direkt auf ihren Produktionssystemen kompilieren.

Offizielles PHP-Logo Abb.: Seit dreißig Jahren das Fundament von vierzig Prozent des Webs: Die Parser-Architektur von PHP wies fundamentale Schwachstellen auf. Quelle: BleepingComputer

Patch-Logistik wird zur neuen Sicherheitsgrenze

Die Sicherheit der Open-Source-Welt stützt sich seit jeher auf ein Idealbild: enge Abstimmung der Beteiligten, pünktliche Freigaben und besonnen handelnde Administratoren. PHP2Shell hat dieses fragile Gleichgewicht aufgedeckt.

Sicherheitsforscher von Sansec und niederländische Behörden hatten bereits vor Veröffentlichung gewarnt, dass Angreifer den Quellcode nach Freigabe innerhalb von 15 Minuten per Reverse Engineering analysieren und mit weltweiten Scans beginnen würden. Die Realität erwies sich als noch unbarmherziger: Durch vorab durchgesickerte Details trafen die ersten Angriffe sechs Stunden früher ein als die eigentlichen Patches.

Auf der anderen Seite mahlen die Mühlen der Softwareverteilung quälend langsam. Selbst nach Bereitstellung des Quellcodes vergehen oft Tage oder Wochen, bis Distributionen fertige Binärpakete schnüren und Administratoren nächtliche Wartungsfenster einrichten können. Für nicht mehr unterstützte Altversionen gibt es nicht einmal Quellcode-Updates.

Der entscheidende Unterschied zwischen Angreifern und Verteidigern liegt nicht mehr im Verfassen von Sicherheits-Patches, sondern in der logistischen Fähigkeit, diese Patches rechtzeitig auf jede verwundbare Maschine zu bringen. Solange Altsysteme ignoriert und Wartungsrückstände verschleppt werden, kann selbst der schnellste Patch der Welt die erste Angriffswelle nur noch im Nachhinein dokumentieren.

Weiterführende Links:

  • Offizielle PHP-Sicherheitsankündigung
  • Technischer Analysebericht von Sansec
  • Häufig gestellte Fragen bei Tenable
  • Untersuchungsbericht von watchTowr
  • Lagebericht zu Cyber-Bedrohungen von Cloudflare