PHP2Shell: Kritische PHP-Lücken (CVE-2026-109618, CVE-2026-109619) bedrohen Millionen Websites – warum Sie heute noch patchen müssen
Stand: Mittwoch, 21. Oktober 2026, 17:30 Uhr. Wir aktualisieren diesen Beitrag, sobald es Neues gibt.
Heute um 16:00 Uhr hat das PHP-Projekt außerplanmäßige Sicherheitsupdates veröffentlicht. Sie schließen zwei Lücken, die Fachleute schon jetzt zu den schwersten der letzten Jahre zählen. Unter dem Namen „PHP2Shell“ (CVE-2026-109618 und CVE-2026-109619) erlauben sie Angreifern, ohne jede Anmeldung eigenen Code auf einem Webserver auszuführen. Damit lässt sich die Website, der Webshop oder die Cloud-Anwendung auf diesem Server vollständig übernehmen. Betroffen ist praktisch jeder Server, der Webseiten mit PHP ausliefert, und das sind viele: Rund 70 Prozent aller Websites, deren Server-Technik bekannt ist, laufen mit PHP. Dazu gehört jede WordPress-Seite.
Besonders gefährlich: Erste Angriffe liefen schon, bevor es die Updates überhaupt gab, und ein fertiges Angriffswerkzeug ist öffentlich. Diesmal hilft kein WordPress-Update und kein Sicherheits-Plugin, denn die Lücke steckt eine Ebene tiefer, in PHP selbst. Schließen lässt sie sich nur auf dem Server.
Kundinnen und Kunden der SKAWINSKI GmbH benachrichtigen wir bei so gravierenden Lücken selbstverständlich direkt. Dieser Beitrag ist für alle anderen: Hier lesen Sie, was passiert ist, ob Sie betroffen sind und was Sie heute noch tun sollten.
⚠️ Sie betreiben eine Website, einen Webshop oder eine Nextcloud? Das ist heute zu tun:
- Klären, wer Ihr PHP betreut. Bei den meisten Websites ist das der Hoster oder die Webagentur. Fragen Sie dort noch heute nach – eine fertige E-Mail-Vorlage finden Sie weiter unten.
- PHP aktualisieren: auf 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 oder auf das korrigierte Paket Ihrer Linux-Distribution. Ein Update von WordPress, Plugins oder Theme reicht nicht.
- PHP danach neu starten. Sonst arbeiten laufende PHP-Prozesse mit der alten, verwundbaren Version weiter.
- PHP 8.1 oder älter? Dafür gibt es kein offizielles Update mehr. Fragen Sie Ihren Anbieter nach einem korrigierten Paket oder wechseln Sie jetzt auf eine unterstützte Version.
- Heute nicht patchbar? Dann nehmen Sie öffentlich erreichbare PHP-Anwendungen vom Netz, bis das Update eingespielt ist. Genau dazu raten Sicherheitsbehörden wie CERT-EU.
- Nach dem Update prüfen, ob es Anzeichen eines Angriffs gibt, und im Zweifel Passwörter und Zugangsschlüssel erneuern.
So lesen Sie diesen Beitrag: Er ist bewusst ausführlich und richtet sich an zwei Lesergruppen. Geschäftsführung und Entscheider finden im Abschnitt „Was PHP2Shell für Ihr Unternehmen bedeutet“ alles Wichtige in verständlicher Sprache, ohne Fachchinesisch. IT-Teams und Administratoren finden Befehle, Konfigurationsbeispiele und Prüfschritte im technischen Leitfaden weiter unten.
Was ist passiert? Vom Leak zum Notfall-Patch in 24 Stunden
Die Lücken wurden im Sommer entdeckt und vertraulich an das PHP-Team gemeldet. Geplant war eine geordnete Veröffentlichung, doch Details sickerten vorzeitig durch. Die Chronologie (Uhrzeiten in österreichischer Zeit):
- August 2026: Sicherheitsforscher von Calif finden mehrere Wege, über PHP fremden Code auszuführen, und melden den ersten Fehler am 11. August an das PHP-Team. Am 24. August meldet auch Wiz Research die Lücken.
- 20. Oktober: Details gelangen vorzeitig an die Öffentlichkeit. Das PHP-Team kündigt für den nächsten Tag Notfall-Updates an.
- 21. Oktober, 05:02 Uhr: Cloudflare schaltet Schutzregeln für alle Kunden frei, rund neun Stunden vor der offiziellen Veröffentlichung.
- 21. Oktober, Vormittag: Hosting-Partner melden dem Sicherheitsanbieter Patchstack erste Angriffe. Auch Cloudflare beobachtet Angriffsverkehr.
- 21. Oktober, 16:00 Uhr: PHP veröffentlicht die korrigierten Versionen 8.5.12, 8.4.27, 8.3.36 und 8.2.35. Calif, Wiz Research und OpenAI legen ihre Erkenntnisse offen, ein Angriffswerkzeug ist öffentlich verfügbar.
Einige Anbieter zogen sofort die Notbremse: Der Rechnungsdienst easybill nahm seine Plattform vorsorglich vom Netz, ebenso The SEO Framework, Hersteller eines bekannten WordPress-Plugins. Auch die Infrastruktur-Anbieter Hetzner und Exoscale haben bereits reagiert und ihre Partner informiert. Die EU-Cybersicherheitsstelle CERT-EU und das britische NCSC raten: Was sich nicht sofort aktualisieren lässt, gehört vorübergehend offline.
Wichtig für alle mit gemieteten Cloud- oder Root-Servern: Der Anbieter kümmert sich um Hardware, Netz und Rechenzentrum, nicht um das PHP auf Ihrem Server. Die Warnung Ihres Anbieters ist ein Weckruf, kein Patch. Aktualisieren müssen Sie selbst oder Ihr IT-Partner.
Laut Patchstack handelte es sich am frühen Nachmittag noch überwiegend um Abtastversuche, harte Belege für Einbrüche gab es da noch keine. Das wird nicht so bleiben: Der Sicherheitsdienstleister Sansec rechnet mit Massenausnutzung, watchTowr beobachtet bereits Angriffe auf seine Köder-Server.

Für Geschäftsführung und Entscheider: Was PHP2Shell für Ihr Unternehmen bedeutet
PHP ist die Programmiersprache, mit der der Großteil aller Websites auf dem Server erzeugt wird. Ihre Besucher sehen PHP nie, aber fast jede Kontaktanfrage, jede Bestellung und jeder Login auf einer solchen Website läuft darüber. Stellen Sie sich PHP wie das Fundament eines Gebäudes vor: PHP2Shell ist ein Riss in diesem Fundament. Wie gut Türschloss (Passwort) und Alarmanlage (Sicherheits-Plugin) sind, spielt dann keine Rolle mehr. Wer den Riss kennt, kommt hinein, und seit heute kennen ihn alle.
Was für Ihr Unternehmen auf dem Spiel steht
- Kundendaten und Geschäftsgeheimnisse. Angreifer können alles lesen, was die Anwendung lesen kann: Kundendaten, Bestellungen, Formulareingaben, Dokumente.
- Zugangsdaten zu anderen Systemen. Ein Webserver kennt oft Passwörter für Datenbank, E-Mail-Versand, Zahlungsanbieter und Schnittstellen. Über die Speicherlücke können sie abfließen und damit Türen zu weiteren Systemen öffnen.
- Ihre Website als Waffe gegen Ihre Kunden. Gekaperte Websites verteilen Schadsoftware an ihre Besucher, wie in dem Fall, den wir im September beschrieben haben. Google warnt dann mit einer roten Warnseite vor Ihrer Website.
- Einfallstor und Erpressung. Ein übernommener Server ist ein Brückenkopf für weitere Angriffe auf Ihr Unternehmen, bis hin zu Ransomware.
- Ausfall und Umsatz. Ein Webshop, der zur Bereinigung offline geht, verkauft nichts. Bereinigung, Spurensicherung und Neuaufbau dauern Tage bis Wochen.
- Rechtliche Folgen. Hatten Angreifer Zugriff auf personenbezogene Daten, gilt die Meldepflicht nach DSGVO binnen 72 Stunden. Wer eine bekannte, kritische Lücke offen lässt, wird sich zudem schwertun, das als angemessene Sicherheitsmaßnahme nach Art. 32 DSGVO zu begründen. Für Unternehmen, die unter NIS2 fallen (in Österreich mit dem NISG 2026 umgesetzt), gehört der Umgang mit Schwachstellen ausdrücklich zu den Pflichten. Die Geschäftsleitung muss die Maßnahmen billigen, ihre Umsetzung überwachen und kann dafür haftbar gemacht werden. Dieser Hinweis ersetzt keine Rechtsberatung.
💼 Drei Fragen, die Sie heute Ihrer IT oder Ihrem Dienstleister stellen sollten
- Welche unserer Systeme laufen mit PHP? Auch die, die Agenturen, Hoster oder Softwarehersteller für uns betreiben.
- Sind alle bis heute Abend aktualisiert und neu gestartet? Und wer bestätigt mir das schriftlich?
- Was lässt sich heute nicht aktualisieren, und wie schützen wir es bis dahin? Notfalls, indem wir es vom Netz nehmen.
Und für nächste Woche: Wie stellen wir sicher, dass wir beim nächsten Mal in Stunden statt Tagen gepatcht sind?
Die Entscheidung, die Sie heute vielleicht treffen müssen
Lässt sich ein System heute nicht aktualisieren, steht eine unbequeme Abwägung an: einige Stunden offline oder online bleiben mit einer offenen Tür, für die es ein öffentliches Angriffswerkzeug gibt. Sicherheitsbehörden wie CERT-EU raten klar dazu, solche Systeme vom Netz zu nehmen.
Unsere Einschätzung: Ein geplanter Ausfall von einigen Stunden ist fast immer billiger als ein ungeplanter von mehreren Wochen. Auf sauber betreuten Systemen dauert ein PHP-Update Minuten bis wenige Stunden, die Aufarbeitung eines Einbruchs dauert Wochen. Wenn Ihre IT heute fragt, ob sie die Website kurz offline nehmen darf, ist die richtige Antwort meistens: ja.
Was Sie nicht tun müssen: in Panik verfallen oder die Laptops Ihrer Mitarbeiter prüfen lassen. PHP2Shell betrifft Server, nicht PCs oder Handys. Wer eine Website nur besucht, ist nicht direkt betroffen.

Warum PHP2Shell so gefährlich ist
Sicherheitslücken gibt es jede Woche. Diese hier ist aus fünf Gründen anders:
- Kein Login nötig. Eine einzige präparierte Anfrage an den Server genügt. Bei Apache mit mod_php greift der Angriff sogar, bevor überhaupt Code der Website läuft.
- Die Standard-Einstellungen sind verwundbar. Es braucht keine exotische Konfiguration und kein bestimmtes Plugin. Laut Sansec funktioniert der Angriff selbst dann, wenn die Anwendung gar keine Sitzungen nutzt.
- Ein 14 Jahre alter Fehler. Der verwundbare Code steckt seit PHP 5.4 aus dem Jahr 2012 in PHP. Entsprechend riesig ist die Zahl der betroffenen Server, vergessene eingeschlossen.
- Der Server plaudert Geheimnisse aus. Eine der Lücken kann, ähnlich wie 2014 „Heartbleed“, Inhalte aus dem Arbeitsspeicher preisgeben: Passwörter, Sitzungsschlüssel, API-Schlüssel und laut Sansec sogar TLS-Schlüssel.
- Bestätigt gegen die Großen. Sansec hat Angriffe ohne Anmeldung gegen aktuelle Versionen von WordPress (7.1.2), Joomla, Drupal, Magento, Nextcloud, Roundcube, phpMyAdmin und MediaWiki bestätigt, ebenso gegen Anwendungen auf Basis von Laravel und Symfony.
Entsprechend deutlich fallen die Einschätzungen aus. Die Forscher von Wiz zählen die Lücken „zu den schwerwiegendsten, die je in PHP entdeckt wurden – und womöglich in der Geschichte der Software überhaupt“. Der bekannte Sicherheitsforscher Kevin Beaumont erwartet eine Welle von Vorfällen. Das PHP-Team bewertet beide Lücken nach CVSS 4.0 mit 9,2 von 10 Punkten. Wie die Fehler technisch funktionieren, erklären wir im technischen Leitfaden.
Unsere Einschätzung: Das ist eine der seltenen Lücken, bei denen wir nicht „zeitnah“ sagen, sondern „heute“. Die Angriffe liefen schon vor dem Patch, das Werkzeug dafür ist öffentlich, und betroffen ist die Grundlage von Millionen Websites. Wer bis zum nächsten Wartungsfenster wartet, wartet zu lange.

Bin ich betroffen?
Kurz gesagt: Wenn auf Ihrem Server PHP läuft und es heute noch nicht aktualisiert wurde, dann ja. Das betrifft weit mehr als klassische Websites:
- Websites und Blogs mit WordPress, Joomla, Drupal, TYPO3 und anderen PHP-Systemen
- Webshops mit WooCommerce, Magento, Shopware oder PrestaShop
- Cloud- und Bürodienste wie Nextcloud, Webmail mit Roundcube oder phpMyAdmin
- Eigene Webanwendungen, Kundenportale und Intranets, etwa auf Basis von Laravel oder Symfony
- Vergessene Systeme: Test- und Staging-Seiten, alte Aktionsseiten, Container-Images sowie Geräte und Software, die PHP mitbringen
Betroffen sind alle gängigen Betriebsarten von PHP: PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed. Am höchsten ist das Risiko bei Apache mit mod_php.
Diese PHP-Versionen sind sicher
- PHP 8.5: ab Version 8.5.12
- PHP 8.4: ab Version 8.4.27
- PHP 8.3: ab Version 8.3.36
- PHP 8.2: ab Version 8.2.35. Achtung: Die Unterstützung für PHP 8.2 endet am 31. Dezember 2026, planen Sie den Umstieg jetzt.
- PHP 8.1 und älter: kein offizielles Update vom PHP-Projekt. Einige Linux-Distributionen liefern korrigierte Pakete, Ubuntu etwa für alle LTS-Versionen, für ältere davon aber nur mit Ubuntu Pro. Wer nicht nachweislich ein solches Paket hat, sollte auf eine unterstützte Version wechseln.
So finden Sie Ihre PHP-Version heraus
- WordPress: Dashboard → Werkzeuge → Website-Zustand → Reiter „Bericht“ → Abschnitt „Server“ → „PHP-Version“.
- Hosting-Kundenbereich (etwa Plesk, cPanel oder CloudPanel): meist unter „PHP-Einstellungen“ oder „PHP-Version“.
- Eigene Server: über den Paketmanager, nicht über
php -v. Die Befehle stehen im technischen Leitfaden.
Achtung, die Versionsnummer kann täuschen. Linux-Distributionen spielen Sicherheitskorrekturen oft in die alte Versionsnummer ein. Ubuntu 24.04 zeigt nach dem Update zum Beispiel weiterhin „8.3.6“ an; entscheidend ist das Paket 8.3.6-0ubuntu0.24.04.13. Umgekehrt beweist eine aktuelle Nummer nichts, solange PHP nicht neu gestartet wurde. Bei Hosting-Paketen gilt deshalb: Lassen Sie sich das Update von Ihrem Anbieter bestätigen.

Was jetzt zu tun ist: Ihre To-do-Liste
Wenn Ihre Website bei einem Hoster oder einer Agentur liegt
- Schreiben Sie Ihrem Hoster oder Ihrer Agentur noch heute. Nutzen Sie dafür die Vorlage unten.
- Lassen Sie sich alles bestätigen: dass alle PHP-Versionen in Ihrem Paket aktualisiert und neu gestartet wurden, nicht nur die Standardversion.
- Denken Sie an alles, was Sie betreiben: Zweit-Domains, Test-Seiten, Webshop, Nextcloud, Webmail.
- Installieren Sie keine „Fix“-Plugins und keine kopierten Code-Schnipsel aus Foren. Patchstack warnt ausdrücklich davor: Sie sind ungeprüft, helfen nicht gegen eine Lücke in PHP und können Ihre Seite beschädigen.
✉️ Vorlage zum Kopieren: E-Mail an Ihren Hoster oder Ihre Agentur
Betreff: Dringend: PHP2Shell (CVE-2026-109618 / CVE-2026-109619) – ist mein Hosting bereits abgesichert?
Guten Tag,
am 21. Oktober 2026 hat das PHP-Projekt Sicherheitsupdates für die kritischen Lücken CVE-2026-109618 und CVE-2026-109619 („PHP2Shell“) veröffentlicht. Bitte bestätigen Sie mir für mein Hosting bzw. meinen Server (Kundennummer, Domain):
- Welche PHP-Version bzw. welches PHP-Paket ist aktiv, und enthält es die Korrekturen?
- Wurden alle PHP-Prozesse nach dem Update neu gestartet?
- Gilt das auch für alle anderen PHP-Versionen, die ich in meinem Kundenbereich auswählen kann?
- Falls das Update noch aussteht: Bis wann wird es eingespielt, und welche Schutzmaßnahmen gelten bis dahin?
Vielen Dank für Ihre rasche Rückmeldung.
Wenn Sie eigene Server betreiben
Die Kurzfassung in fünf Schritten: Bestand erfassen (alle Server, Container und Anwendungen mit PHP), aus der richtigen Quelle aktualisieren (dort, wo PHP herkommt), richtig neu starten (bei Apache mit mod_php reicht ein „graceful“-Reload nicht), kontrollieren, dass kein Prozess mehr die alte Version nutzt, und danach Übergangsmaßnahmen zurückbauen. Alle Befehle, Paketversionen und Konfigurationsbeispiele finden Sie im technischen Leitfaden weiter unten.
Heute nicht patchbar? Diese Notlösungen gibt es, und ihre Grenzen
Das PHP-Projekt ist eindeutig: „Aktualisieren ist die einzig sichere Wahl.“ Alle folgenden Maßnahmen verkleinern nur die Angriffsfläche, die Lücke schließen sie nicht. Sie sind für die Stunden gedacht, bis das Update eingespielt ist:
- Vom Netz nehmen. Am sichersten: PHP-FPM bzw. PHP im Webserver stoppen und eine statische Wartungsseite ausliefern. Wartungsmodus-Plugins von WordPress oder Magento helfen nicht, denn sie laufen selbst über PHP, und der Angriff setzt davor an.
- Nur Lesezugriff erlauben. Ist offline keine Option, kann der Webserver alle Anfragen außer GET und HEAD ablehnen. Besucher können dann lesen, aber keine Formulare absenden, sich nicht anmelden und nichts bestellen.
- Formular-Uploads sperren. Alle bekannten Angriffswege nutzen Anfragen vom Typ
multipart/form-data. Diese am Webserver zu blockieren, bremst die bekannten Angriffe, legt aber auch Datei-Uploads und manche Formulare und Bestellprozesse lahm. - PHP-Einstellungen auf Server-Ebene ändern. Einige Einstellungen blockieren die bisher bestätigten Angriffswege, aber nicht alle denkbaren Varianten. Sie gehören in die Server-Konfiguration, nicht in die Website; Beispiele stehen im technischen Leitfaden.
- Web Application Firewall. Cloudflare filtert bekannte Angriffsmuster bereits, auch im kostenlosen Tarif. Cloudflare selbst nennt das aber nur eine Überbrückung.
Was nicht hilft: Fehlermeldungen auszublenden, WordPress-, Plugin- oder Theme-Updates und Sicherheits-Plugins innerhalb der Website. Die Angriffe setzen an, bevor solche Plugins greifen können; Sansec rät deshalb ausdrücklich davon ab, sich auf den eigenen Anwendungsschutz zu verlassen.
Nach dem Update: Wurde ich schon angegriffen?
Das Update schließt die Tür. Wer schon drinnen ist, bleibt aber drinnen. Wie das in der Praxis aussieht, haben wir erst im September an einem echten Fall beschrieben: WordPress gehackt – und warum ein Backup allein nicht hilft. Prüfen Sie deshalb nach dem Patch, ob es Anzeichen eines Angriffs gibt:
- Auffällige Upload-Anfragen in den Webserver-Logs, auf die Speicherfehler („Allowed memory size … exhausted“) oder gehäufte 500er-Fehler folgen
- Ungewöhnlich große oder fehlerhafte Sitzungs-Cookies (
PHPSESSID) - Unerklärliche Neustarts von PHP-Prozessen
- Die üblichen Einbruchsspuren: unbekannte Administratorkonten, neue PHP-Dateien in Upload-Ordnern, unerwartet geänderte Dateien
Keines dieser Zeichen beweist einen Einbruch, und ihr Fehlen beweist nicht das Gegenteil. Bei Auffälligkeiten behandeln Sie den Server als möglicherweise kompromittiert. Weil die Lücke Speicherinhalte preisgeben kann, erneuern Sie dann alle Geheimnisse, die der Server kennt: Datenbank-Passwörter, Admin-Zugänge, API-Schlüssel von Zahlungs- und Mail-Diensten, die WordPress-Salts und gegebenenfalls TLS-Zertifikate. Konkrete Prüfbefehle stehen im technischen Leitfaden.
Hatten Angreifer möglicherweise Zugriff auf personenbezogene Daten, kann eine Meldung an die Datenschutzbehörde binnen 72 Stunden nötig sein. Was die DSGVO dabei verlangt, haben wir im selben Beitrag zusammengefasst. Hinweise auf Angriffe können Sie außerdem an CERT.at melden.

wp2shell im Juli, PHP2Shell im Oktober: Was wir daraus lernen
Im Juli war es „wp2shell“, eine Lückenkette im WordPress-Kern. Jetzt trifft es mit PHP2Shell die Ebene darunter. Beide Male gilt: Wer schnell aktualisiert, ist auf der sicheren Seite. Wer erst nach Wochen reagiert, räumt womöglich einen Einbruch auf. Genau so war es in dem Fall, den wir im September beschrieben haben. Sechs Lehren für jedes Unternehmen:
- Wissen, was läuft. Nur was in einer Bestandsliste mit Versionen steht, wird auch gepatcht. Vergessene Test-Seiten sind das klassische Einfallstor.
- Wissen, wer zuständig ist. Hoster, Agentur oder eigene IT: Viele Betriebe merken heute, dass sich für PHP niemand verantwortlich fühlt.
- Automatisch patchen, mit Neustart und Kontrolle. Wer Sicherheitsupdates automatisch einspielt, war heute im Vorteil, aber nur halb: Laut Canonical installiert Ubuntu Sicherheitsupdates zwar automatisch binnen 24 Stunden, die betroffenen Dienste müssen danach aber trotzdem neu gestartet werden. Automatisches Patching heißt deshalb: Update, Neustart und eine Rückmeldung, dass beides geklappt hat.
- Automatisieren statt Handarbeit. Wer zehn Server einzeln von Hand aktualisiert, braucht Stunden und vergisst womöglich einen. Mit IT-Automatisierung wird daraus ein einziger, wiederholbarer Durchlauf: alle Systeme aktualisieren, Dienste neu starten, Ergebnis prüfen, in Minuten statt Stunden.
- Veraltete Versionen rechtzeitig ablösen. Wer heute noch PHP 8.1 oder älter betreibt, bekommt kein offizielles Update. PHP 8.2 folgt am 31. Dezember 2026.
- Einen Notfallplan haben. Können Sie Ihre Website in zehn Minuten durch eine statische Wartungsseite ersetzen? Heute war genau das gefragt.

Auf den aktuellen Patchstand: gemeinsam mit Infrastruktur und Entwicklungspartnern
Bei einer Standard-Website mit aktuellem WordPress ist ein PHP-Update meist schnell erledigt. Schwieriger wird es bei individuellen Webanwendungen, Kundenportalen und Schnittstellen und bei allem, was noch auf PHP 8.1 oder älter läuft. Dort reicht es nicht, auf dem Server einen Schalter umzulegen: Der Code der Anwendung muss mit der neuen PHP-Version zusammenspielen. Sonst ist die Seite zwar sicher, aber kaputt.
Deshalb arbeitet die SKAWINSKI GmbH mit zahlreichen Softwareentwicklungspartnern zusammen, darunter Smaracis. Die Aufgaben sind klar verteilt: Wir kümmern uns um die Infrastruktur, also Server, Betriebssystem, Webserver und PHP. Unsere Entwicklungspartner kümmern sich um den Code der Anwendung. So bringen wir Kunden gemeinsam auf den aktuellen Patchstand:
- Bestandsaufnahme: Welche Systeme laufen mit welcher PHP-Version, und wer hat die Anwendung entwickelt?
- Sofortschutz: Wo das Update nicht sofort möglich ist, sichern wir die Systeme übergangsweise ab oder nehmen sie kontrolliert vom Netz.
- Kompatibilität prüfen: Unsere Entwicklungspartner prüfen den Code auf die neue PHP-Version und passen ihn bei Bedarf an, etwa beim Umstieg von PHP 8.1 auf 8.4 oder 8.5.
- Erst testen, dann einspielen: Update und Anpassungen laufen zuerst auf einer Testumgebung und erst danach im Live-Betrieb.
- Automatisieren und dranbleiben: Danach sorgen automatisches Patching, Monitoring und regelmäßige Kontrollen dafür, dass der Patchstand aktuell bleibt.
Betreut schon ein eigener Entwickler oder eine Agentur Ihre Anwendung, stimmen wir uns direkt mit ihnen ab. Wichtig ist nur, dass am Ende niemand auf den anderen wartet, während der Server offen steht.
Technischer Leitfaden für IT-Teams und Administratoren
Dieser Abschnitt richtet sich an alle, die PHP-Server selbst betreiben. Die Befehle beziehen sich auf gängige Linux-Systeme; Pfade, Dienstnamen und PHP-Versionen (hier meist 8.3) passen Sie an Ihre Umgebung an. Prüfen Sie Befehle vor dem Einsatz auf Produktivsystemen.
1. Die Lücken im Detail
- CVE-2026-109618 – „RCE via OOM corruption“ (GHSA-w8hw-w9fx-j79w, CVSS 4.0: 9,2). Laut PHP-Team kann die Behandlung eines Out-of-Memory-Fehlers PHP unterbrechen, während interne Anfragedaten erst teilweise initialisiert sind. Die Aufräumroutine am Ende der Anfrage behandelt diese ungültigen Daten danach als gültig.
- CVE-2026-109619 – „RCE via stale global state“ (GHSA-6wmf-4rv5-p3rp, CVSS 4.0: 9,2). Interner, anfragebezogener Zustand überlebt, obwohl sein Speicher bereits freigegeben wurde. Eine spätere Anfrage im selben Worker kann diesen veralteten Zustand verwenden, bevor die normale Initialisierung ihn zurücksetzt.
Beide sind Use-after-free-Fehler, ausgelöst durch einen schweren Fehler, typischerweise das Überschreiten von memory_limit, mitten in der Verarbeitung einer Anfrage. Die öffentlich beschriebenen Angriffswege laufen laut Sansec über die Verarbeitung des Upload-Fortschritts von Sitzungen (session.upload_progress), über Backtraces bei Fatal Errors (fatal_error_backtraces, neu in PHP 8.5) und über eine Typverwechslung im OPcache. Alle bekannten Auslöser nutzen multipart/form-data-Anfragen. Das öffentliche Werkzeug „PHP2Shell“ kombiniert beide Fehler zu einem Angriff ohne Anmeldung; einer der Pfade liest zusätzlich Speicher aus, ähnlich wie Heartbleed.
Daraus ergeben sich drei Eigenheiten, die für die Abwehr wichtig sind:
- Der Angriff greift vor dem Anwendungscode. PHP verarbeitet den Request-Body, bevor ein Skript startet; für mod_php ist ein Angriff vor jeglichem Anwendungscode demonstriert. Schutzmechanismen innerhalb der Anwendung, Wartungsmodi und Sicherheits-Plugins kommen deshalb zu spät.
- Kein
session_start()nötig. Upload-Progress ist standardmäßig aktiv und wird beim Parsen der Anfrage ausgewertet. Auch Anwendungen ohne Sitzungen sind angreifbar. - Langlebige Worker tragen den Zustand weiter. Apache-Prozesse mit mod_php und FPM-Worker bearbeiten viele Anfragen nacheinander. Genau das nutzt CVE-2026-109619 aus.
2. Bestandsaufnahme: Wo läuft überall PHP?
Laufende PHP- und Webserver-Prozesse:
ps -eo pid,user,cmd | grep -E 'php-fpm|lsphp|php-cgi|frankenphp|apache2|httpd' | grep -v grep
Installierte PHP-Pakete unter Debian und Ubuntu bzw. Red Hat, AlmaLinux und Rocky Linux:
dpkg -l 'php*' | awk '/^ii/{print $2, $3}'
rpm -qa 'php*' | sort
dnf module list --enabled php
Container und Kubernetes:
docker ps --format '{{.Names}} {{.Image}}'
kubectl get pods -A -o jsonpath='{..image}' | tr ' ' '\n' | sort -u | grep -i php
Vergessen Sie nicht: Staging- und Testsysteme, Cron-Jobs und Queue-Worker, Container-Images in Registries und CI-Pipelines, Appliances mit Weboberfläche sowie Anwendungen wie Nextcloud, Roundcube oder phpMyAdmin, die oft nebenbei laufen.
3. Aktualisieren: Pakete und Quellen
Grundregel: Aktualisieren Sie aus derselben Quelle, aus der PHP installiert wurde. Linux-Distributionen und Anbieter mit Langzeit-Support haben die Korrekturen vorab erhalten.
Ubuntu. Korrigierte Pakete laut Canonical: 22.04 LTS php8.1 8.1.2-1ubuntu2.28, 24.04 LTS php8.3 8.3.6-0ubuntu0.24.04.13, 26.04 LTS php8.5 8.5.4-0ubuntu1.5. Für 20.04 und älter gibt es Korrekturen nur über Ubuntu Pro (ESM), etwa php7.4 7.4.3-4ubuntu2.29+esm5 für 20.04.
sudo apt update
sudo apt install --only-upgrade '?name(^php[0-9.]+$)'
Debian sowie PPA und packages.sury.org. Ausstehende PHP-Updates anzeigen und gezielt einspielen, je PHP-Version auf dem Server:
sudo apt-get update
apt list --upgradable 2>/dev/null | grep php
sudo apt-get install --only-upgrade 'php8.3*' libapache2-mod-php8.3
Den Stand für Ihre Debian-Version zeigt der Debian Security Tracker. Bei PPA- und Sury-Paketen steht im Changelog oft nur „New upstream version“; vergleichen Sie dann die Versionsnummer mit den korrigierten Versionen 8.5.12, 8.4.27, 8.3.36 und 8.2.35.
Red Hat, AlmaLinux, Rocky Linux:
sudo dnf upgrade 'php*'
dnf updateinfo list --security | grep php
rpm -q --changelog php-fpm | head -5
Achtung bei RHEL 8: Ein einfaches dnf install php installiert den ausgelaufenen PHP-7.2-Stream, der keine Korrekturen mehr erhält. Remi-Pakete im SCL-Stil heißen anders (etwa php84-php-fpm) und werden mit sudo dnf upgrade 'php84-*' aktualisiert. Das Remi-Repository hatte laut PHP-Projekt am 21. Oktober aber noch keine Updates. Weichen Sie dort auf Distributionspakete aus oder bauen Sie aus dem Quellcode.
Docker und Kubernetes. Image mit docker build --pull neu bauen und die Container neu erstellen; in Kubernetes nach dem Image-Update kubectl rollout restart deployment/<name>. Die Release-Candidate-Images 8.5.12RC1 und 8.4.27RC1 enthalten die Korrektur nicht.
FrankenPHP bringt sein eigenes PHP mit: neues Release bzw. Image installieren und mit frankenphp version prüfen. Paketmanager wie apt oder dnf aktualisieren es nicht.
PHP 7.4, 8.0 und 8.1 aus dem Quellcode: Das PHP-Team stellt minimale Korrekturen in eigenen Zweigen bereit (PHP-7.4-CVE-2026-109618-109619, PHP-8.0-…, PHP-8.1-… im Repository php/php-src). Diese Notkorrektur schaltet den Upload-Fortschritt vollständig ab; Fortschrittsbalken bei Uploads funktionieren danach nicht mehr. Das ist eine Überbrückung, kein Ersatz für den Umstieg.
4. Richtig neu starten
- PHP-FPM (hinter nginx, Caddy oder Apache mit
proxy_fcgi):sudo systemctl restart php8.3-fpmunter Debian/Ubuntu bzw.sudo systemctl restart php-fpmunter RHEL. - Apache mit mod_php:
sudo systemctl restart apache2bzw.httpd. Einapachectl gracefulreicht nicht: In Tests lud Apache danach weiterhin das alte PHP-Modul. - LiteSpeed und OpenLiteSpeed:
lsphp-Pakete aktualisieren, dannsudo pkill lsphp. Ein Neustart von LiteSpeed allein startet PHP nicht neu. - Queue-Worker, Supervisor, Octane: ebenfalls neu starten, bei Laravel etwa
php artisan queue:restart. Einoctane:reloadlädt nur den Code neu, nicht PHP.
5. Kontrollieren
Kein Prozess darf mehr ein gelöschtes, also altes PHP-Binary oder -Modul im Speicher haben. Leere Ausgabe ist das Ziel:
sudo grep -lE ' /(usr|lib|opt).*[(]deleted[)]$' /proc/[0-9]*/maps
Unter Debian und Ubuntu erledigt needrestart dasselbe komfortabler, und unter Ubuntu bestätigt der Changelog die Korrektur:
sudo needrestart -b -r l
zgrep -E 'CVE-2026-10961[89]' /usr/share/doc/php8.3-fpm/changelog.Debian.gz
Prüfen Sie geänderte PHP-Einstellungen immer über eine echte Webanfrage, die PHP-FPM bzw. Apache beantwortet, nicht auf der Kommandozeile: CLI und Webserver nutzen oft unterschiedliche Konfigurationen.
6. Übergangsmaßnahmen: Konfigurationsbeispiele
Nur für die Zeit bis zum Patch, und mit Nebenwirkungen. Uploads am Webserver sperren (bricht Datei-Uploads und manche Formulare und Checkouts; danach eine Testbestellung durchführen). nginx, in jedem server-Block, der PHP ausliefert:
if ($http_content_type ~* "multipart/form-data") { return 403; }
Apache, in jedem VirtualHost, der PHP ausliefert:
RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]
Nur Lesezugriff (nginx): Besucher können lesen, aber nicht anmelden oder bestellen.
if ($request_method !~ ^(GET|HEAD)$) { return 503; }
PHP-Einstellungen für Apache mit mod_php (php.ini oder conf.d, danach Apache vollständig neu starten):
session.upload_progress.enabled = 0
memory_limit = -1
; nur PHP 8.5:
fatal_error_backtraces = 0
Für PHP-FPM in jedem Pool, zum Beispiel /etc/php/8.3/fpm/pool.d/www.conf, danach alle Worker neu starten:
php_admin_flag[session.upload_progress.enabled] = off
php_admin_value[memory_limit] = -1
Zusätzlich empfiehlt das PHP-Team ein niedriges post_max_size (8M ohne Uploads, 32M mit Uploads; upload_max_filesize darunter) sowie Grenzen am Webserver oder Proxy für Anfragegröße, Anzahl der Felder, Multipart-Teile und Header, auch für Anfragen ohne brauchbares Content-Length. Wichtig:
- Die Werte gehören in die php.ini, den FPM-Pool oder die Server-Konfiguration.
ini_set()und.user.inigreifen zu spät. memory_limit = -1erlaubt einer einzigen Anfrage, den gesamten Arbeitsspeicher zu belegen. Begrenzen Sie den Speicher stattdessen per Container- oder cgroup-Limit, das möglichst nur den betroffenen Worker beendet, und überwachen Sie den RAM.RLIMIT_ASoderRLIMIT_DATAsollten Sie nicht verwenden: Sie können genau den verwundbaren Speicherfehler auslösen.- Fehlermeldungen auszublenden (
error_reporting,display_errors,@) hilft nicht. - Diese Einstellungen blockieren laut PHP-Team die bestätigten Angriffswege, aber nicht alle Varianten.
Cloudflare: Im kostenlosen Tarif greift das Free Managed Ruleset automatisch. In bezahlten Tarifen muss das Cloudflare Managed Ruleset auf „Block“ stehen. Geblockte Anfragen sehen Sie unter Security → Security Analytics → Events. Wirksam ist das nur, wenn Ihr Server ausschließlich Verkehr von Cloudflare annimmt.
7. Spurensuche nach dem Patch
Speicherfehler und abgestürzte Worker in den Logs (Pfade je nach System). Gehäufte Speicherfehler kurz nach Upload-Anfragen und Worker, die mit SIGSEGV oder SIGABRT abstürzen, können auf Angriffsversuche hindeuten:
grep -h "Allowed memory size" /var/log/php*-fpm.log /var/log/apache2/error.log 2>/dev/null | tail -n 50
grep -h "exited on signal" /var/log/php*-fpm.log 2>/dev/null | tail -n 50
Neue oder geänderte PHP-Dateien, insbesondere in Upload-Verzeichnissen:
find /var/www -type f -name '*.php' -mtime -3 -ls
find /var/www -path '*/uploads/*' -name '*.php'
Unerwartete ausgehende Verbindungen von PHP- oder Webserver-Prozessen, etwa zu fremden Servern:
sudo ss -tnp state established | grep -E 'php|apache2|httpd|lsphp'
Für WordPress zusätzlich, ohne Plugins und Theme zu laden, damit möglicher Schadcode nicht mitstartet:
wp core verify-checksums --skip-plugins --skip-themes
wp plugin verify-checksums --all --skip-plugins --skip-themes
wp user list --role=administrator --skip-plugins --skip-themes
Große oder fehlerhafte PHPSESSID-Cookies finden Sie nur, wenn Ihre Logs Cookies erfassen; das ist meist nicht der Fall. Bei Auffälligkeiten: Server isolieren, Beweise sichern, bevor Sie etwas löschen, und alle Geheimnisse erneuern, die der Server kennt. Dazu gehören Datenbank- und Admin-Passwörter, API-Schlüssel, die WordPress-Salts (wp config shuffle-salts) sowie TLS-Zertifikate, die Sie widerrufen und neu ausstellen lassen.
8. Nach dem Patch: zurückbauen und härten
- Speicherlimit wiederherstellen.
memory_limit = -1durch einen echten Wert ersetzen. Die korrigierten Versionen bringen zusätzlich eine harte Speichergrenze mit, standardmäßig das Doppelte vonmemory_limit, wenn dieses höchstens 1G beträgt. Worker, die sie erreichen, beenden sich mit Exit-Code 137; behalten Sie das PHP-FPM-Log im Blick. - Sperren entfernen: den Multipart-Block am Webserver und eigene Cloudflare-Regeln. Die verwalteten Regeln von Cloudflare können bleiben.
- Beibehalten:
session.use_strict_mode = 1, das PHP für alle Websites empfiehlt.session.upload_progress.enabled = 0kann bleiben, wenn Ihre Anwendung keine Upload-Fortschrittsbalken nutzt.fatal_error_backtracesunter PHP 8.5 können Sie wieder aktivieren. - Wartungsseiten abbauen und Systeme, die offline oder schreibgeschützt waren, kontrolliert wieder freigeben.
- Umstieg planen: Systeme auf PHP 8.1 und älter auf 8.4 oder 8.5 heben, PHP 8.2 vor dem 31. Dezember 2026.
Häufige Fragen (FAQ)
Was ist PHP2Shell?
PHP2Shell ist der Name für zwei kritische Sicherheitslücken in PHP, CVE-2026-109618 und CVE-2026-109619. Sie erlauben es Angreifern, ohne Anmeldung eigenen Code auf einem Webserver auszuführen und Speicherinhalte wie Passwörter auszulesen. Das PHP-Projekt hat sie am 21. Oktober 2026 mit den Versionen 8.5.12, 8.4.27, 8.3.36 und 8.2.35 geschlossen.
Ist meine WordPress-Seite betroffen?
Sehr wahrscheinlich ja, solange das PHP auf Ihrem Server nicht aktualisiert wurde. WordPress läuft immer mit PHP, und Sicherheitsforscher haben den Angriff gegen das aktuelle WordPress 7.1.2 bestätigt. Ihre PHP-Version sehen Sie unter Werkzeuge → Website-Zustand → Bericht → Server. Ob das Paket die Korrektur enthält, kann Ihnen verlässlich nur Ihr Hoster sagen.
Reicht es, WordPress und alle Plugins zu aktualisieren?
Nein. Die Lücke steckt in PHP selbst, also in der Software, auf der WordPress läuft. Geschlossen wird sie nur durch ein PHP-Update auf dem Server mit anschließendem Neustart von PHP.
Welche PHP-Versionen sind sicher?
PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 sowie neuere Versionen, außerdem die korrigierten Pakete von Linux-Distributionen. Diese tragen oft eine ältere Versionsnummer, Ubuntu 24.04 etwa 8.3.6 mit Paketversion 8.3.6-0ubuntu0.24.04.13. Für PHP 8.1 und älter gibt es kein offizielles Update.
Mein Hoster sagt, er kümmert sich darum. Muss ich trotzdem etwas tun?
Lassen Sie sich das Update schriftlich bestätigen, inklusive Neustart und für alle PHP-Versionen in Ihrem Paket. Bei gemieteten Cloud- oder Root-Servern ist PHP ohnehin Ihre Aufgabe oder die Ihres IT-Partners. Prüfen Sie nach dem Update außerdem, ob es Anzeichen eines Angriffs gibt.
Ich nutze noch PHP 7.4 oder 8.1. Was nun?
Das PHP-Projekt liefert dafür keine fertigen Updates, nur minimale Quellcode-Korrekturen für alle, die PHP selbst kompilieren. Einige Linux-Distributionen bieten korrigierte Pakete an. Fragen Sie Ihren Anbieter danach und planen Sie den Umstieg auf PHP 8.4 oder 8.5. Bis dahin gilt: Was sich nicht absichern lässt, gehört vom Netz.
Schützt mich Cloudflare?
Teilweise. Cloudflare filtert bekannte Angriffsmuster, auch im kostenlosen Tarif. Das wirkt aber nur, wenn Ihr Server ausschließlich Verkehr über Cloudflare annimmt, und neue Angriffsvarianten können durchrutschen. Cloudflare selbst rät, PHP trotzdem zu aktualisieren.
Ist mein PC, Laptop oder Handy betroffen?
Nein. PHP2Shell betrifft Server, die mit PHP Webseiten ausliefern. Ihr PC, Laptop oder Handy ist nicht direkt betroffen. Ausnahme: Entwickler-Rechner, auf denen ein lokaler Webserver mit PHP läuft, sollten ebenfalls aktualisiert werden. Indirekt kann eine gehackte Website ihre Besucher angreifen. Deshalb ist es so wichtig, dass Website-Betreiber jetzt handeln.
Fazit: Heute patchen, morgen prüfen, übermorgen planen
PHP2Shell ist keine Lücke, die man ins nächste Wartungsfenster schiebt. Ein Angriff braucht keine Anmeldung, die Werkzeuge sind öffentlich, und betroffen ist die Grundlage von rund 70 Prozent aller Websites mit bekannter Server-Technik. Die gute Nachricht: Die Abhilfe ist klar. Heute PHP aktualisieren und neu starten oder, wo das nicht geht, vom Netz nehmen. Morgen prüfen, ob schon jemand drinnen war. Und übermorgen dafür sorgen, dass beim nächsten Mal feststeht, wer zuständig ist, und dass Patches automatisch, kontrolliert und in Stunden statt Wochen ankommen. Das ist kein Hexenwerk, sondern Handwerk mit den richtigen Werkzeugen: automatisches Patching, IT-Automatisierung und jemand, der Probleme verhindert, statt nur auf sie zu reagieren. Genau das verstehen wir unter proaktiver IT-Betreuung.
📣 Bitte teilen: Jede ungepatchte Website ist eine offene Tür
Die meisten Website-Betreiber wissen gar nicht, dass ihre Seite mit PHP läuft, und erfahren von PHP2Shell erst, wenn es zu spät ist. Leiten Sie diesen Beitrag an alle weiter, die eine Website, einen Webshop oder eine Nextcloud betreiben: an Ihre Agentur, den Verein, die Steuerberatung, das Geschäft ums Eck. Zwei Minuten Weiterleiten können einen Einbruch verhindern.

So unterstützt Sie SKAWINSKI – Ihr IT-Partner für Patchmanagement, Server und Website-Sicherheit
Als IT-Dienstleister für den DACH-Raum unterstützt die SKAWINSKI GmbH kleine und mittlere Unternehmen dabei, kritische Lücken wie PHP2Shell schnell und kontrolliert zu schließen und danach den Überblick zu behalten: welche Systeme laufen, wer sie aktualisiert und ob die Updates wirklich angekommen sind. Mit IT-Automatisierung und automatischem Patching wird daraus ein verlässlicher Ablauf statt einer Feuerwehraktion. Das bieten wir im Rahmen unserer proaktiven IT-Betreuung, als Managed Services aus Österreich oder als IT-Betreuung für kleine Unternehmen ohne eigene IT-Abteilung.
✓ Soforthilfe bei kritischen Lücken – PHP, Webserver und Betriebssystem aktualisiert, neu gestartet und kontrolliert
✓ Prüfung auf Einbruchsspuren – Logs, Konten und Dateien geprüft, Zugangsdaten erneuert, Beweise gesichert
✓ Automatisches Patching und Update-Überwachung – Server, PHP, WordPress, Plugins und Themes aktuell, Neustarts und Update-Läufe kontrolliert
✓ IT-Automatisierung – Updates, Neustarts und Prüfungen als wiederholbarer Ablauf statt Handarbeit pro Server
✓ Proaktive IT-Betreuung – Probleme verhindern, statt nur auf sie zu reagieren
✓ Zahlreiche Softwareentwicklungspartner wie Smaracis – Anwendungen fit für aktuelle PHP-Versionen, abgestimmt mit der Infrastruktur
✓ Kontinuierliches IT-Monitoring – damit veraltete Versionen und Auffälligkeiten früh auffallen
✓ IT-Healthcheck – über 170 Prüfpunkte in 14 Bereichen Ihrer IT-Infrastruktur, von Patchständen über Backups bis zu Identitäten und Zugängen
✓ Microsoft- und Exoscale-Partner mit über einem Jahrzehnt Erfahrung in der IT-Betreuung
✓ Lokaler Anbieter aus Eichgraben mit persönlichem Service vor Ort in Wien, Wien Umgebung und Niederösterreich
✓ Remote-Service europaweit verfügbar – schnelle Hilfe ohne geografische Grenzen
Unsicher, ob Ihre Website schon abgesichert ist? Rufen Sie uns direkt an: +43 660 509 2494. Ob Patchstände, Backups und Zugänge in Ihrer gesamten IT wirklich stimmen, zeigt ein IT-Healthcheck: Sie erhalten in 2–3 Wochen einen Bericht mit priorisierten Maßnahmen. Für die laufende Überwachung sorgt unser kontinuierliches IT-Monitoring.
„Wir fangen da an, wo andere aufhören.“
– Robert Skawinski · SKAWINSKI GmbH
Quellen: PHP Group, Sicherheitsankündigung vom 20.10.2026 und Releases vom 21.10.2026 im php.net-Nachrichtenarchiv 2026; PHP Security Advisories GHSA-w8hw-w9fx-j79w (CVE-2026-109618) und GHSA-6wmf-4rv5-p3rp (CVE-2026-109619); Sansec, „PHP2Shell: Critical PHP RCE (CVE-2026-109618, CVE-2026-109619)“, 21.10.2026; Patchstack, „Major security alert: PHP vulnerable to critical RCE, attacks ongoing“, 21.10.2026; Cloudflare, „Cloudflare deploys protections against php2shell vulnerability“, 21.10.2026; Help Net Security, „PHP2Shell: Critical PHP vulnerabilities patched, update now!“, 21.10.2026; watchTowr, „PHP Remote Code Execution FAQ: CVE-2026-109618“, 21.10.2026; Canonical, „php2shell (CVE-2026-109618 and CVE-2026-109619)“; ma.ttias.be, „PHP CVE-2026-109618 and CVE-2026-109619: how to apply the patches“; netzwelt, „Kritische PHP-Lücke: EU-Behörde warnt – erste Websites gehen aus Sicherheitsgründen offline“, 21.10.2026; W3Techs, „Historical trends in the usage statistics of server-side programming languages“, Stand 27.08.2026; Art. 20 und 21 NIS2-Richtlinie (EU) 2022/2555; Art. 32 und 33 DSGVO; eigene Recherchen der SKAWINSKI GmbH (Stand 21.10.2026): erhöhtes Aufkommen bestimmter Anfragen, bisher keine betroffenen Kunden.
Dieser Beitrag wurde mit KI-Unterstützung durch die SKAWINSKI GmbH erstellt und redaktionell geprüft.






