1. Alarmstufe Rot im Oktober & November 2026: Was hinter „php2shell“ steckt
Vor wenigen Tagen hat ein koordiniertes Sicherheitsbulletin des offiziellen PHP-Entwicklerteams, flankiert von dringenden Warnmeldungen des Bundesamts für Sicherheit in der Informationstechnik (BSI) sowie der US-amerikanischen Cybersicherheitsbehörde CISA, die internationale Webhosting- und WordPress-Welt in höchste Alarmbereitschaft versetzt: Unter dem Namen „php2shell“ wurden zwei eng miteinander verzahnte, kritische Sicherheitslücken direkt im C-Quellcode der Programmiersprache PHP öffentlich bekannt gemacht – registriert unter den Kennungen CVE-2026-109618 und CVE-2026-109619.
Beide Schwachstellen wurden nach dem aktuellen CVSS-v4.0-Standard mit 9,2 von 10,0 Punkten („Kritisch“) eingestuft. Das Bedrohungspotenzial ist deshalb so außergewöhnlich hoch, weil es sich um eine unauthentifizierte Remote Code Execution (RCE) handelt: Ein Angreifer benötigt weder ein Passwort noch einen Redakteurs-Zugang noch ein verwundbares Drittanbieter-Plugin, um über das Internet beliebigen Programmcode (eine sogenannte Webshell) auf einem ungepatchten Webserver auszuführen.
Das Wichtigste in 45 Sekunden (Management Summary für Website-Betreiber)
1. Was ist passiert? Ende Oktober 2026 wurden unter dem Namen „php2shell“ (CVE-2026-109618 & CVE-2026-109619, CVSS 9.2) sowie CVE-2026-115560 kritische Speicher-Korruptionslücken im Kern von PHP entdeckt. Automatisierte Botnetze scannen seitdem weltweit nach ungepatchten Servern.
2. Wer ist betroffen? Nahezu jede dynamische Website auf Basis von WordPress, WooCommerce, Shopware, TYPO3, Joomla, Contao oder Laravel, deren Server noch mit PHP 8.5 (vor 8.5.12), PHP 8.4 (vor 8.4.27), PHP 8.3 (vor 8.3.36), PHP 8.2 (vor 8.2.35) oder einer abgekündigten Altversion (PHP 8.1, 8.0, 7.4) läuft.
3. Was müssen Sie sofort tun? Ein Klick auf „Plugins aktualisieren“ im WordPress-Backend hilft diesmal nicht, weil der Fehler eine Ebene tiefer in der PHP-Laufzeitumgebung des Webservers sitzt. Prüfen Sie noch heute Ihre exakte PHP-Build-Nummer und aktualisieren Sie auf PHP 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 – und setzen Sie ergänzend session.upload_progress.enabled = 0 in Ihrer php.ini.
Da PHP nach aktuellen Erhebungen von W3Techs auch im Herbst 2026 das Rückgrat von rund 74,5 % aller Websites weltweit bildet, deren serverseitige Programmiersprache bekannt ist – darunter über 43 % aller Websites überhaupt, die auf WordPress laufen –, sprechen IT-Sicherheitsforscher bereits jetzt von einer der folgenreichsten Infrastruktur-Schwachstellen seit der berüchtigten CGI-Argument-Injection (CVE-2024-4577).
In diesem umfassenden Leitfaden erklären wir Ihnen als Berliner Webdesign- und Technik-Agentur verständlich und gleichzeitig technisch präzise, wie der php2shell-Angriff im Detail funktioniert, warum herkömmliche WordPress-Sicherheitsplugins den Angriff oft gar nicht erst zu Gesicht bekommen, wie Sie Ihren Server in unter 60 Sekunden testen und wie Sie das Update ohne Ausfallzeiten für Ihr Unternehmen durchführen.
2. Technische Tiefenanalyse: Wie CVE-2026-109618 & CVE-2026-109619 zusammenwirken
Um zu verstehen, warum Sicherheitsbehörden bei php2shell zur sofortigen Handlung drängen, lohnt sich ein Blick unter die Motorhaube eines modernen Webservers. Wenn ein Besucher (oder ein Angreifer) eine WordPress-Seite aufruft, wird dieser HTTP-Request nicht für jeden Klick in einem komplett neu gestarteten Betriebssystem-Prozess verarbeitet – das wäre viel zu langsam. Stattdessen halten moderne Server-Schnittstellen (SAPIs) wie PHP-FPM (FastCGI Process Manager), Apache mod_php, FrankenPHP oder LiteSpeed LSAPI einen Pool aus dauerhaft laufenden Worker-Prozessen bereit, die hunderte oder tausende HTTP-Anfragen nacheinander abarbeiten.
Damit Kunde B niemals Daten oder Speicherreste von Kunde A sieht, führt PHP zwischen zwei HTTP-Anfragen innerhalb desselben Worker-Prozesses einen strengen Aufräum- und Initialisierungszyklus durch (php_request_startup() am Anfang und php_request_shutdown() am Ende). Und genau in diesem lebenswichtigen Übergang klafften bis vor wenigen Tagen zwei fatale Sicherheitslücken:
Teil 1 der Angriffskette: CVE-2026-109618 (GHSA-w8hw-w9fx-j79w) – RCE via Out-of-Memory (OOM) Corruption
Die erste Schwachstelle (CVE-2026-109618) tritt genau dann auf, wenn PHP während der allerersten Phase eines eingehenden HTTP-Requests – also beim Parsen von POST-Daten, multipart/form-data-Dateiuploads oder tief verschachtelten Request-Variablen – an das konfigurierte Speicherlimit (memory_limit) stößt.
- Der fatale
longjmp()-Sprung: Sobald der Zend Memory Manager feststellt, dass für den aktuellen Request kein weiterer Arbeitsspeicher allokiert werden darf (Out-of-Memory / OOM), löst PHP einen kritischen Fehler (zend_bailout()) aus, der technisch über die C-Funktionlongjmp()direkt in die Shutdown-Routine springt. - Uninitialisierte Pointer im SAPI-Kontext: Findet dieser OOM-Abbruch exakt in dem Mikrosekunden-Zeitfenster statt, in dem die Request-Struktur (z. B.
SG(request_info)oder Upload-Handler-Strukturen) erst halb aufgebaut wurde, überspringt derlongjmp()-Notausstieg die restliche Null-Initialisierung bestimmter interner Zeiger (Pointer). - Die Folge: Die Aufräumroutine
php_request_shutdown()verlässt sich darauf, dass alle relevanten Pointer entwederNULLsind oder auf gültige Speicherblöcke zeigen. Durch den vorzeitigen Abbruch zeigen einzelne interne Referenzen jedoch auf nicht initialisierten oder bereits freigegebenen Heap-Speicher (Memory Corruption).
Teil 2 der Angriffskette: CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp) – RCE via Stale Global State (Use-After-Free)
Während ein einmaliger Speicherfehler bei einem klassischen Kommandozeilen-Skript einfach zum Programmende führen würde, entfaltet er in Kombination mit CVE-2026-109619 in persistenten Webserver-Workern (wie PHP-FPM) seine volle Zerstörungskraft:
- Verschleppter globaler Zustand (Stale Global State): Nach einem fehlerhaft abgebrochenen ersten Request stirbt der PHP-FPM-Worker-Prozess nicht, sondern kehrt sofort in den Pool zurück und nimmt wenige Millisekunden später den nächsten HTTP-Request entgegen.
- Cross-Request Use-After-Free (UAF): In
CVE-2026-109619wurde festgestellt, dass bestimmte globale Zustandszeiger (unter anderem im Fehler-, Session-, Objekt- und SAPI-Handling) zu Beginn des neuen Requests nicht vollständig zurückgesetzt wurden, wenn der vorherige Request abnormal endete. Sie verweisen weiterhin auf Speicheradressen des vorherigen Requests, die vom Speichermanager längst freigegeben und für neue Daten des zweiten Requests wiederverwendet wurden. - Vom Dangling Pointer zur Webshell: Sendet ein Angreifer nun unmittelbar hintereinander eine präzise abgestimmte Sequenz aus HTTP-Requests (sogenanntes Heap Grooming / Heap Spraying), kann er den freigegebenen Speicherbereich im zweiten Request mit eigenen Byte-Strukturen füllen. Sobald PHP über den veralteten Zeiger (Dangling Pointer) vermeintlich auf eine interne Struktur oder einen Funktionszeiger (z. B. einen Destruktor-Callback in einer Zend-Objektstruktur) zugreift, führt der Server stattdessen den eingeschleusten Maschinencode bzw. Systembefehle (
system(),exec(),proc_open()) des Angreifers aus – daher der Name php2shell.
3. Warum ein reines WordPress- oder Plugin-Update diesmal NICHT schützt
Als Digitalagentur erleben wir nach großen Sicherheitswarnungen fast immer dieselbe Reaktion bei besorgten Geschäftsführern und Marketing-Verantwortlichen: Man loggt sich kurz ins WordPress-Backend unter /wp-admin/ ein, sieht den grünen Haken „WordPress 6.x ist aktuell, alle Plugins sind auf dem neuesten Stand“ – und lehnt sich beruhigt zurück.
Bei „php2shell“ (CVE-2026-109618 & CVE-2026-109619) ist genau dieses Sicherheitsgefühl lebensgefährlich.
WordPress-Sicherheitsplugins sind selbst in PHP geschrieben und werden erst geladen, nachdem der PHP-Interpreter den eingehenden HTTP-Request initialisiert, die Multipart-POST-Daten im Arbeitsspeicher geparst und die Datei index.php bzw. wp-config.php gestartet hat. Da CVE-2026-109618 und CVE-2026-115560 jedoch bereits vor der Ausführung der ersten Zeile WordPress-Code direkt in der C-basierten Request-Initialisierung von PHP zuschlagen, wird ein PHP-basiertes Sicherheitsplugin im schlimmsten Fall überhaupt nicht mehr erreicht, bevor die Speicherkorruption im Worker-Prozess stattfindet!
Lassen Sie sich diese Architektur-Schichtung auf der Zunge zergehen:
- Schicht 1 – Netzwerk & Webserver (Nginx / Apache / Cloudflare WAF): Nimmt das TCP-Paket und den HTTP-Stream aus dem Internet entgegen.
- Schicht 2 – PHP-Laufzeitumgebung & SAPI (PHP-FPM /
libphp): Parst Header, Cookies,multipart/form-data-Uploads, Session-Upload-Progress und reserviert den Heap-Speicher. → Genau HIER sitzt „php2shell“! - Schicht 3 – CMS-Kern (WordPress, Shopware, TYPO3, Joomla): Wird erst aufgerufen, wenn Schicht 2 den Request sauber vorbereitet hat.
- Schicht 4 – Themes & Plugins (Elementor, WooCommerce, Yoast, Wordfence): Laufen ganz am Ende innerhalb von Schicht 3.
Das bedeutet im Klartext: Selbst eine frisch installierte WordPress-Website ohne ein einziges Plugin – oder sogar eine hochgradig abgesicherte Unternehmenswebsite mit Zwei-Faktor-Authentifizierung, verstecktem Login-Pfad und starken Passwörtern – ist über jede öffentlich erreichbare .php-Datei verwundbar, solange die darunterliegende PHP-Engine auf dem Server nicht auf den Patch-Stand von Ende Oktober 2026 aktualisiert wurde.
4. Übersichtstabelle: Alle verwundbaren PHP-Versionen & die Notfall-Patches
Die PHP Group hat am 21. bzw. 23. Oktober 2026 außerplanmäßige Notfall-Updates für alle vier aktuell unterstützten PHP-Versionszweige veröffentlicht (für Windows-Systeme folgte kurz darauf das Release-Suffix -1 inklusive des aktualisierten Brotli-Bibliothekspatches). Prüfen Sie anhand der folgenden Tabelle sofort, wo Ihr Server steht:
| PHP-Versionszweig | Support-Status (Nov. 2026) | Verwundbare Versionen | Sichere Patch-Version | Handlungsbedarf für Betreiber |
|---|---|---|---|---|
| PHP 8.5 | Aktiver Support | 8.5.0 bis 8.5.11 | ab PHP 8.5.12 (Windows: 8.5.12-1) |
Sofortiges Minor-Update auf 8.5.12 einspielen (100 % abwärtskompatibel innerhalb von 8.5). |
| PHP 8.4 | Aktiver Support | 8.4.0 bis 8.4.26 | ab PHP 8.4.27 (Windows: 8.4.27-1) |
Sofortiges Minor-Update auf 8.4.27 einspielen (Standard-Empfehlung für moderne WordPress-Seiten). |
| PHP 8.3 | Security-Support | 8.3.0 bis 8.3.35 | ab PHP 8.3.36 (Windows: 8.3.36-1) |
Sofortiges Patch-Update auf 8.3.36 einspielen; mittelfristig Wechsel auf PHP 8.4/8.5 planen. |
| PHP 8.2 | Security-Support (Auslaufend) | 8.2.0 bis 8.2.34 | ab PHP 8.2.35 (Windows: 8.2.35-1) |
Sofort auf 8.2.35 patchen! Da der reguläre PHP-8.2-Support Ende 2026 ausläuft, zeitnah auf 8.4 upgraden. |
| PHP 8.1 | End of Life (EOL) | Alle 8.1.x Versionen | Kein offizieller Patch! (Nur Distro-Backports) |
Akute Gefahr! Kein offizielles PHP-Release mehr. Sofortiges Upgrade auf PHP 8.3.36 oder 8.4.27 zwingend nötig. |
| PHP 8.0 / 7.4 / 7.x | End of Life (EOL) | Alle 8.0.x & 7.x Versionen | Kein Patch verfügbar! | Höchste Warnstufe! Viele Shared-Hoster berechnen für PHP 7.4/8.0 teuren „Extended Support“, patchen aber oft verzögert. Sofort migrieren! |
Wichtiger Hinweis für Linux-Server-Administratoren (Debian, Ubuntu, RHEL, AlmaLinux): Wenn Sie PHP nicht über die offiziellen Ondřej-Surý-Pakete (ppa:ondrej/php bzw. packages.sury.org), sondern über die Standard-Paketquellen von Debian 12/13 oder Ubuntu 22.04/24.04 LTS beziehen, behält Ihre Distribution die Basis-Versionsnummer (z. B. PHP 8.2.x-1ubuntu2.19 oder deb12u8) bei und pflegt die Sicherheitspatches als sogenannte Backports ein. Prüfen Sie in diesem Fall über apt-cache policy php8.2-fpm bzw. das offizielle Debian/Ubuntu Security Tracker Advisory zu CVE-2026-109618, ob das Sicherheitsupdate vom Ende Oktober 2026 bereits installiert und der Dienst php-fpm danach neu gestartet wurde!
5. Zwei weitere Oktober-2026-Lücken im Gepäck: CVE-2026-115560 & CVE-2026-111497
Als wäre das Duo aus CVE-2026-109618 und CVE-2026-109619 noch nicht brisant genug, fielen in denselben Patch-Zyklus Ende Oktober 2026 noch zwei weitere kritische Sicherheitsmeldungen, die jeder Administrator und Website-Inhaber kennen muss:
1. CVE-2026-115560: Remote Code Execution über Session Upload Progress
Nur zwei Tage nach den ersten Berichten wurde mit CVE-2026-115560 eine eng verwandte Schwachstelle in der internen PHP-Funktion zur Fortschrittsüberwachung von Datei-Uploads (Session Upload Progress) dokumentiert. Standardmäßig ist in fast jeder Standard-php.ini die Direktive session.upload_progress.enabled = 1 aktiviert.
Sendet ein Angreifer gleichzeitig mit einem manipulierten Datei-Upload den speziellen Formular-Parameter PHP_SESSION_UPLOAD_PROGRESS, legt PHP noch während des laufenden HTTP-Streams automatisch eine Session an und schreibt Metadaten über den Upload in das Session-Array – noch bevor irgendein WordPress- oder Anwendungsskript prüft, ob der Besucher überhaupt eingeloggt oder berechtigt ist. Durch einen Bereinigungsfehler bei abgebrochenen Uploads (session.upload_progress.cleanup) in Kombination mit Speicherengpässen lässt sich auch dieser Pfad für eine unauthentifizierte Remote Code Execution missbrauchen.
2. CVE-2026-111497: Kritischer Buffer Overflow in der Brotli-Dekomprimierung (Windows-Builds)
Ebenfalls im selben Notfall-Update (in den Windows-Paketen 8.5.12-1, 8.4.27-1, 8.3.36-1 und 8.2.35-1 sowie aktuellen Linux-Bibliotheken) wurde CVE-2026-111497 geschlossen. Hierbei handelt es sich um einen kritischen Out-of-Bounds Write (Speicherüberschreibung) in der Kompressionsbibliothek libbrotli vor Version 1.2.1.
Wann wird das für eine WordPress-Website gefährlich? Immer dann, wenn Ihr Server über cURL ausgehende HTTP-Anfragen stellt (zum Beispiel beim Abruf von Plugin-Updates, Webhook-Antworten, Zahlungsanbieter-APIs, RSS-Feeds oder externen KI-Schnittstellen) und dabei komprimierte Antworten (Accept-Encoding: br) akzeptiert. Liefert ein kompromittierter oder vom Angreifer kontrollierter Endpunkt einen speziell präparierten Brotli-Datenstrom zurück, konnte dies den PHP-Prozess zum Absturz bringen oder fremden Code einschleusen.
6. Welche Server-Konfigurationen (PHP-FPM, Apache, FrankenPHP, LiteSpeed) betroffen sind
Eine Frage, die uns in den letzten Tagen häufig von IT-Leitern und Systemadministratoren gestellt wurde, lautet: „Wir nutzen kein klassisches Apache mod_php, sondern Nginx mit PHP-FPM im Docker-Container – sind wir trotzdem von php2shell betroffen?“
Die klare Antwort lautet: Ja, gerade dann! Denn das Herzstück von CVE-2026-109619 (Stale Global State) setzt voraus, dass derselbe Betriebssystem-Prozess mehrere HTTP-Anfragen nacheinander abarbeitet. Und genau das tun alle modernen Hochleistungs-Webserver:
- Nginx / Apache mit PHP-FPM (FastCGI Process Manager): Die heute mit Abstand verbreitetste Architektur bei Managed Hostern, Cloud-Servern (Hetzner, AWS, DigitalOcean) und Plesk-/cPanel-Umgebungen. Sofern
pm.max_requestsnicht auf1steht (was die Performance zerstören würde), bedient jeder FPM-Worker hunderte Requests in Folge und ist auf ungepatchten Versionen voll verwundbar. - Apache mit
mod_php(MPM Prefork): Der klassische Aufbau vieler Shared-Hosting-Pakete. Auch hier bleiben die Apache-Kindprozesse samt eingebettetem PHP-Interpreter über viele Requests hinweg am Leben. - LiteSpeed Web Server / OpenLiteSpeed (LSAPI): Häufig bei speziellen WordPress-Hostern im Einsatz. Nutzt ebenfalls persistente PHP-Worker-Prozesse und erfordert zwingend das Update der
lsphp82/lsphp83/lsphp84Binaries. - FrankenPHP, RoadRunner & Laravel Octane (Swoole): Besonders kritisch! Da diese modernen Application-Server das gesamte Framework im Arbeitsspeicher behalten, um Antwortzeiten unter 10 Millisekunden zu erreichen, wirken sich korrumpierte globale Zustände hier noch unmittelbarer aus.
7. Selbsttest in 60 Sekunden: So prüfen Sie sofort, ob Ihre Website verwundbar ist
Sie müssen kein Server-Experte sein, um herauszufinden, ob Ihre Unternehmenswebsite akut gefährdet ist. Wählen Sie einfach einen der folgenden drei Wege – der Test dauert weniger als eine Minute:
Weg 1: Direkt im WordPress-Backend (ohne Programmierkenntnisse)
- Loggen Sie sich in Ihr WordPress-Dashboard (
/wp-admin/) ein. - Klicken Sie in der linken Menüleiste auf Werkzeuge → Website-Zustand (englisch: Tools → Site Health).
- Wechseln Sie oben auf den Reiter „Bericht“ (Info) und klappen Sie den Punkt „Server“ auf.
- Schauen Sie in die Zeile „PHP-Version“:
- Steht dort z. B.
8.4.27,8.3.36oder8.2.35? Herzlichen Glückwunsch, Ihr Server hat den Patch bereits erhalten! - Steht dort hingegen
8.3.14,8.2.28,8.1.29oder gar7.4.33? Dann läuft Ihre Website auf einer ungepatchten bzw. veralteten Version und Sie sollten sofort handeln!
- Steht dort z. B.
Weg 2: Für Administratoren & Entwickler per SSH-Terminal
Wenn Sie SSH-Zugriff auf Ihren Webserver oder vServer haben, prüfen Sie sowohl die CLI-Version als auch den tatsächlich laufenden PHP-FPM-Dienst (denn oft wird nach einem Paket-Update vergessen, den PHP-FPM-Daemon neu zu starten!):
php -v
systemctl status php8.3-fpm php8.4-fpm
php -i | grep -E "PHP Version|session.upload_progress.enabled"
Achtung Stolperfalle: Selbst wenn php -v im Terminal bereits PHP 8.4.27 anzeigt, halten laufende php-fpm-Worker im Arbeitsspeicher noch so lange die alte, verwundbare Programm-Binärdatei geladen, bis Sie den Dienst explizit per sudo systemctl restart php8.4-fpm (bzw. reload) neu gestartet haben!
Weg 3: Über Ihr Hosting-Kundenmenü (Plesk, cPanel, KAS, CloudPit, KonsoleH)
Loggen Sie sich bei Ihrem Webhoster ein und rufen Sie die Domain- bzw. Hosting-Einstellungen auf. Dort sehen Sie neben Ihrer Domain direkt die zugewiesene PHP-Hauptversion (z. B. PHP 8.3 oder PHP 8.4).
8. Was Kunden von IONOS, Strato, All-Inkl, Hetzner, Mittwald & Raidboxes jetzt tun müssen
Da wir bei Hauptstadt Homepage hunderte Kundenprojekte in ganz Deutschland betreuen und migrieren, kennen wir die Update-Politik der großen deutschen Hosting-Provider aus dem Effeff. Hier gibt es eine extrem wichtige Unterscheidung zwischen Minor-Updates (Patch-Level) und Major-Versionswechseln:
- Die gute Nachricht bei aktiven PHP-Zweigen (PHP 8.3 & 8.4): Wenn Ihre Website bei einem großen deutschen Shared- oder Managed-Hoster (wie All-Inkl, IONOS, Strato, Mittwald, Raidboxes oder HostPress) bereits auf PHP 8.3 oder PHP 8.4 eingestellt ist, spielt der Hoster die Sicherheits-Unterversionen (also das Update von
8.3.35auf8.3.36bzw. von8.4.26auf8.4.27) in der Regel zentral im Hintergrund ein. Prüfen Sie trotzdem über den WordPress-Website-Zustand (siehe Abschnitt 7), ob Ihr Server-Cluster bereits aktualisiert wurde! - Die große Gefahr Nr. 1 – Veraltete PHP-Zweige (PHP 7.4, 8.0, 8.1) bei IONOS & Strato: Sehr viele Bestands-Websites kleiner und mittlerer Unternehmen laufen noch immer auf PHP 7.4, PHP 8.0 oder PHP 8.1, oft verbunden mit einem kostenpflichtigen „PHP Extended Support“ für 10 € bis 18 € Aufpreis pro Monat. Ihr Hoster stellt Ihre Website niemals von selbst von PHP 8.0 auf PHP 8.4 um, weil dabei ältere WordPress-Themes oder Plugins abstürzen könnten! Hier müssen Sie zwingend selbst aktiv werden.
- Die große Gefahr Nr. 2 – Eigene Root-Server & Cloud-VMs (Hetzner Cloud, Netcup, AWS, DigitalOcean): Wenn Sie oder Ihre damalige Agentur einen eigenen virtuellen Server (z. B. mit Plesk, CloudPanel oder nacktem Ubuntu/Debian) gemietet haben, ist allein der Server-Betreiber für das Einspielen der Betriebssystem- und PHP-Patches verantwortlich. Ohne aktive Server-Wartung bleibt ein solcher Server dauerhaft offen wie ein Scheunentor.
9. Schritt-für-Schritt-Anleitung: PHP-Version sicher updaten ohne Website-Absturz
Warum scheuen viele Unternehmer und Selbstständige den Klick auf „PHP-Version ändern“ im Hosting-Panel wie der Teufel das Weihwasser? Weil jeder Zweite schon einmal erlebt hat, dass nach der Umstellung von PHP 7.4 oder 8.1 auf PHP 8.4 plötzlich nur noch ein weißer Bildschirm (White Screen of Death) mit der Meldung „Es gab einen kritischen Fehler auf deiner Website“ erscheint.
Damit Ihnen genau das nicht passiert, gehen Sie nach unserem erprobten 6-Schritte-Agentur-Protokoll vor:
- Vollständiges Offsite-Backup erstellen (Dateien + Datenbank): Ändern Sie niemals eine Server-Einstellung ohne frisches Backup! Sichern Sie sowohl das komplette WordPress-Verzeichnis als auch die MySQL-/MariaDB-Datenbank (z. B. über UpdraftPlus, WPvivid oder den Snapshot-Manager Ihres Hosters).
- WordPress-Core, Child-Theme & alle Plugins vorab aktualisieren: Alte Plugin-Versionen aus den Jahren 2022–2024 enthalten oft PHP-Befehle, die in PHP 8.3 und 8.4 als
Fatal Errorabgelehnt werden (z. B. dynamische Klassen-Properties oder geänderte Funktionssignaturen). Bringen Sie daher vor dem PHP-Wechsel zuerst alle Plugins, das Theme (z. B. Astra, Divi, Elementor, Avada) und WordPress selbst auf den aktuellen Stand. - Verwaiste Alt-Plugins radikal löschen: Deaktivierte oder seit über 2 Jahren nicht mehr vom Hersteller gepflegte Plugins sind die häufigste Ursache für PHP-8.4-Abstürze. Was nicht aktiv gebraucht wird, gehört gelöscht.
- PHP-Version im Hosting-Panel auf PHP 8.4 (mindestens 8.4.27) oder PHP 8.3 (mindestens 8.3.36) umstellen: Bei den meisten Hostern dauert die Umschaltung nur 30 bis 90 Sekunden. Falls etwas schiefgeht, können Sie für wenige Minuten zurückschalten, während Sie das fehlerhafte Plugin im Error-Log identifizieren.
- Kritische Funktionen im Inkognito-Fenster testen: Prüfen Sie nach der Umstellung nicht nur die Startseite! Testen Sie zwingend Ihr Kontaktformular (Senden einer echten Test-Anfrage!), den WooCommerce-Warenkorb & Checkout, die Suche sowie das Einloggen unter
/wp-admin/. - Alle Caches leeren (OPcache + WordPress-Cache): Leeren Sie abschließend WP Rocket, LiteSpeed Cache, Autoptimize oder Ihren Server-OPcache, damit keine veralteten Kompilate ausgeliefert werden.
10. Sofort-Härtung (Workaround), falls Sie das PHP-Update heute noch nicht einspielen können
Was tun Sie, wenn auf Ihrem Server eine geschäftskritische Individualsoftware, ein älterer Online-Shop oder ein unverzichtbares Spezial-Plugin läuft, das unter PHP 8.3/8.4 noch nicht startet, oder wenn Ihr Hosting-Provider das Patch-Release 8.4.27 / 8.3.36 erst in einigen Tagen ausrollt?
In diesem Fall sollten Sie sofort drei wirksame Schutzmaßnahmen (Mitigations) aktivieren, die den Angriffsvektor von php2shell und CVE-2026-115560 drastisch einschränken:
Maßnahme 1: Session Upload Progress in der php.ini oder .user.ini deaktivieren
Die offiziellen PHP-Sicherheitshinweise zu CVE-2026-115560 nennen einen glasklaren Konfigurationsschalter, den 99,9 % aller normalen Unternehmenswebsites ohnehin niemals benötigen. Tragen Sie in Ihrer php.ini, .user.ini oder Ihrer PHP-FPM-Pool-Konfiguration folgende Zeile ein:
session.upload_progress.enabled = 0
Dadurch ignoriert PHP eingehende PHP_SESSION_UPLOAD_PROGRESS-Manipulationsversuche bereits im Keim, bevor während eines Datei-Uploads unauthentifizierte Session-Strukturen im Speicher angelegt werden.
Maßnahme 2: Gefährliche System-Exec-Funktionen in PHP sperren
Selbst wenn es einem Angreifer über eine Speicherkorruption gelingt, PHP-Code-Fragmente auszuführen, will er im nächsten Schritt fast immer eine Betriebssystem-Shell öffnen (/bin/sh, bash, curl, wget). Da WordPress und fast alle seriösen Plugins diese Systemfunktionen im Normalbetrieb überhaupt nicht benötigen, sollten Sie sie in der php.ini über disable_functions hart blockieren:
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, pcntl_exec
Maßnahme 3: PHP-FPM Worker-Lebensdauer begrenzen & Request-Größen im Webserver deckeln
Da CVE-2026-109618 darauf basiert, einen PHP-Prozess während der Request-Initialisierung gezielt in ein Out-of-Memory (OOM) zu treiben, und CVE-2026-109619 einen langlebigen Worker-Prozess voraussetzt, helfen zwei Einstellungen auf Webserver-Ebene (Nginx / Apache):
- Begrenzen Sie die maximal erlaubte HTTP-Body-Größe bereits im vorgeschalteten Nginx-Webserver (z. B.
client_max_body_size 16M;), sodass gigantische Multipart-Requests für anonyme Besucher gar nicht erst bis an PHP-FPM durchgereicht werden, sofern sie deutlich kleiner als das PHP-memory_limit(z. B.256Moder512M) sind. - Setzen Sie in der PHP-FPM-Pool-Konfiguration (
www.conf) den Parameterpm.max_requests = 200(statt0/ unendlich), damit Worker-Prozesse regelmäßig frisch recycelt werden.
11. Forensik & Log-Analyse: Woran Sie erkennen, ob Ihr Server bereits angegriffen wurde
Seit der Veröffentlichung der technischen Details zu CVE-2026-109618, CVE-2026-109619 und CVE-2026-115560 beobachten Sicherheitsforscher und CERT-Teams weltweit automatisierte Scan-Wellen. Wie können Sie feststellen, ob Ihre Website in den vergangenen Tagen bereits ins Visier geraten ist?
Anders als ein leiser Passwort-Diebstahl hinterlässt ein php2shell-Exploit-Versuch aufgrund seiner technischen Natur (Erzwingen von Out-of-Memory-Zuständen und Speicherkorruption im Worker) sehr charakteristische Spuren (Indicators of Compromise – IoC) in Ihren Server-Logdateien:
- 1. Häufung von „Allowed memory size exhausted“-Fehlern ohne erkennbaren Grund: Durchsuchen Sie Ihr PHP-Error-Log nach Zeilen wie
PHP Fatal error: Allowed memory size of ... bytes exhausted, die plötzlich dutzendfach innerhalb weniger Sekunden von derselben IP-Adresse ausgelöst werden – insbesondere bei Aufrufen von Dateien, die normalerweise kaum Speicher verbrauchen. - 2. PHP-FPM Worker-Abstürze mit Signal 11 (SIGSEGV / Segmentation Fault): Da Heap-Spray-Angriffe auf
CVE-2026-109618undCVE-2026-109619oft mehrere Versuche benötigen, bis das Speicherlayout exakt passt, stürzen vorherige Worker-Prozesse mit einem Speicherzugriffsfehler ab. Prüfen Sie/var/log/php8.x-fpm.logoderjournalctlauf Einträge wie:
WARNING: [pool www] child ... exited on signal 11 (SIGSEGV) after ... seconds from start - 3. Ungewöhnliche
POST-Requests mitPHP_SESSION_UPLOAD_PROGRESS: Prüfen Sie Ihre Nginx-/Apache-Access-Logs auf ungewöhnlich vielePOST-Anfragen an/index.php,/wp-login.phpoder/xmlrpc.phpmit Statuscode500oder502 Bad Gateway, auf die unmittelbar ein normaler200 OK-Request derselben IP folgt. - 4. Neu angelegte oder veränderte
.php-Dateien im Upload-Verzeichnis: Prüfen Sie auf Ihrem Server per Terminal, welche.php-Dateien in den letzten 14 Tagen neu erstellt oder geändert wurden:
find /var/www/ -name "*.php" -mtime -14 -ls
Insbesondere im Ordner/wp-content/uploads/hat eine ausführbare.php-Datei niemals etwas verloren!
12. Rechtliche Sprengkraft: DSGVO-Bußgelder (Art. 32), NIS-2 & Geschäftsführer-Haftung
Ein Server-Hack über eine bekannte Sicherheitslücke ist im Jahr 2026 längst kein reines „Technik-Problem“ mehr, das man stillschweigend unter den Teppich kehren kann. Für Einzelunternehmer, Freiberufler, Arztpraxen, Kanzleien und GmbH-Geschäftsführer hängen daran handfeste rechtliche und finanzielle Haftungsrisiken:
- Pflicht zur Sicherheit der Verarbeitung nach Art. 32 DSGVO: Jede Website, die ein Kontaktformular, ein Bewerbungsformular, eine Online-Terminbuchung oder einen WooCommerce-Shop betreibt, verarbeitet personenbezogene Daten. Nach Art. 32 Abs. 1 DSGVO sind Sie gesetzlich verpflichtet, dem „Stand der Technik“ entsprechende Sicherheitsmaßnahmen zu gewährleisten. Wer wochenlang nach einer öffentlichen BSI-Warnung noch immer eine ungepatchte PHP-Version oder gar eine abgekündigte End-of-Life-Version (wie PHP 7.4 oder 8.1) betreibt, handelt im Schadensfall grob fahrlässig.
- 72-Stunden-Meldepflicht nach Art. 33 DSGVO: Erlangt ein Angreifer über
php2shellLesezugriff auf Ihre WordPress-Datenbank (in der oft tausende Kundenanfragen, Rechnungsadressen oder E-Mail-Postfächer liegen), handelt es sich um eine meldepflichtige Datenpanne, die innerhalb von 72 Stunden der zuständigen Landesdatenschutzbehörde gemeldet werden muss. - NIS-2-Umsetzungsgesetz (BSIG-neu): Für mittelständische Unternehmen und digitale Dienstleister, die unter die verschärften NIS-2-Regularien fallen, gehört ein dokumentiertes Schwachstellen- und Patch-Management zu den gesetzlichen Kernpflichten der Geschäftsleitung – inklusive persönlicher Haftung der Geschäftsführer bei Organisationsverschulden.
- Google-Blacklist & SEO-Totalverlust: Wird Ihre gehackte Website von automatisierten Botnetzen genutzt, um Phishing-Seiten, Casino-Spam oder Schadcode auszuliefern, blendet Google Chrome Besuchern innerhalb weniger Stunden eine knallrote Warnseite („Betrügerische Website – Sicherheitsrisiko“) ein. Ihre über Jahre aufgebauten Google-Rankings brechen dadurch innerhalb von 48 Stunden ein.
13. Architektur-Entscheidung: Warum moderne HTML5-Websites & betreute Miet-Websites immun sind
Die aktuelle php2shell-Krise führt vielen Unternehmerinnen und Unternehmern eine unbequeme Wahrheit vor Augen, über die wir in unserer täglichen Beratung bei Hauptstadt Homepage sehr offen sprechen:
Braucht wirklich jede Unternehmenswebsite ein schweres, datenbankbasiertes PHP-Content-Management-System wie WordPress?
Verstehen Sie uns nicht falsch: Wenn Sie regelmäßig eigene Blogartikel veröffentlichen, ein Kundenportal betreiben oder einen Online-Shop mit hunderten Produkten führen, ist ein professionell gewartetes WordPress-System großartig. Doch bei rund 70 % aller klassischen KMU-Websites (Handwerksbetriebe, Arztpraxen, Rechtsanwälte, Steuerberater, Architekten, lokale Dienstleister) loggt sich der Inhaber das ganze Jahr über kein einziges Mal selbst ins Backend ein! Trotzdem schleppt die Website 24 Stunden am Tag einen kompletten PHP-Interpreter, eine MySQL-Datenbank und 25 Plugins mit sich herum – und ist bei jeder neuen PHP- oder Plugin-Lücke sofort verwundbar.
Zwei sorgenfreie Wege für Unternehmen bei Hauptstadt Homepage
Weg A – Hochperformante Webseiten im All-Inclusive-Mietmodell (ab 39,90 € / Monat):
Unsere Standard-Mietpakete (Website mieten: Basic, Complete & Pro) setzen bewusst auf blitzschnellen, modernen, statisch ausgelieferten Code ohne unnötigen PHP-/Datenbank-Ballast. Der riesige Vorteil: Wo kein PHP-Interpreter auf dem Server ausgeführt wird, läuft jeder „php2shell“-Angriff zu 100 % ins Leere! Ihre Seite lädt in unter 0,4 Sekunden und ist konstruktionsbedingt immun gegen PHP- und SQL-Injection-Hacks.
Weg B – WordPress-CMS als betreutes Add-on oder mit unserem Wartungspaket:
Sie wünschen sich ausdrücklich das volle CMS WordPress (bei unseren Mietpaketen jederzeit optional buchbar für +10 € im Basic-, +15 € im Complete- bzw. +20 € im Pro-Paket) oder besitzen bereits eine bestehende WordPress-Website? Dann übernehmen wir im Rahmen unserer professionellen Website-Pflege & WordPress-Wartung sämtliche PHP-Versions-Upgrades, Server-Sicherheitspatches, tägliche Backups und Kompatibilitätstests proaktiv für Sie – bevor Sicherheitslücken wie CVE-2026-109618 zum Problem werden.
Jetzt sichere Website oder Wartungspaket im Kostenrechner kalkulieren
14. Die 10-Punkte-Notfall-Checkliste für Geschäftsführer, Agenturen & Admins
Arbeiten Sie diese 10 Punkte am besten noch heute ab (oder leiten Sie diesen Beitrag direkt an Ihren IT-Verantwortlichen bzw. Webdesigner weiter), um Ihr Unternehmen vollständig gegen php2shell abzusichern:
- PHP-Version sofort prüfen: Nachsehen (im WordPress-Website-Zustand oder Hosting-Panel), welche exakte PHP-Version inkl. Patch-Nummer auf Ihrem Server aktiv ist.
- Patch-Stand abgleichen: Sicherstellen, dass mindestens PHP 8.5.12, PHP 8.4.27, PHP 8.3.36 oder PHP 8.2.35 installiert ist.
- End-of-Life-Versionen sofort ablösen: Läuft Ihre Website noch auf PHP 7.4, 8.0 oder 8.1? Sofort nach einem Komplett-Backup auf PHP 8.4 (oder 8.3) umstellen – und gleichzeitig die teuren „Extended Support“-Gebühren beim Hoster sparen!
- PHP-FPM-Dienst neu starten (bei eigenen Servern): Auf Root- und Cloud-Servern nach dem
apt upgradezwingendsystemctl restart php8.x-fpmausführen, damit keine alten Worker im RAM verbleiben. - Session Upload Progress abschalten: In der
php.inioder.user.iniden Wertsession.upload_progress.enabled = 0setzen, um auchCVE-2026-115560komplett den Boden zu entziehen. - Brotli-Bibliothek prüfen (
CVE-2026-111497): Insbesondere auf Windows-Servern prüfen, dass die gepatchten Builds (8.5.12-1,8.4.27-1,8.3.36-1,8.2.35-1) mit Brotli 1.2.1 aktiv sind. - System-Befehle in PHP sperren: Über
disable_functionsgefährliche Shell-Aufrufe (exec,shell_exec,system,proc_open,passthru) blockieren. - Server-Logs auf Abstürze prüfen: Die PHP-FPM- und Webserver-Logs der letzten 10 Tage auf verdächtige
SIGSEGV-Abstürze und massenhafteAllowed memory size exhausted-Meldungen kontrollieren. - Upload-Ordner absichern: Sicherstellen, dass im Verzeichnis
/wp-content/uploads/die Ausführung von.php-Dateien per Webserver-Regel (.htaccess/ Nginxlocation) strikt verboten ist. - Feste Wartungs-Verantwortung definieren: Klären Sie verbindlich, wer sich künftig jeden Monat um Server-, PHP-, Core- und Plugin-Updates kümmert – oder lagern Sie die technische Verantwortung über unsere Website-Pflege bzw. unsere All-Inclusive-Mietpakete an uns aus.
15. Häufig gestellte Fragen (FAQ zur PHP-Sicherheitslücke php2shell)
Unter dem Namen „php2shell“ werden zwei Ende Oktober 2026 veröffentlichte, kritische Sicherheitslücken im Kern der Programmiersprache PHP zusammengefasst (CVSS-Score 9.2 von 10). CVE-2026-109618 verursacht eine Speicherkorruption (Out-of-Memory Corruption), wenn ein HTTP-Request während der Initialisierung an das Speicherlimit stößt und per longjmp() abgebrochen wird. CVE-2026-109619 sorgt dafür, dass langlebige PHP-Worker-Prozesse (z. B. PHP-FPM oder Apache mod_php) diesen korrumpierten Zustand in den nächsten HTTP-Request verschleppen (Use-After-Free), wodurch Angreifer ohne Passwort oder Login eigenen Programmcode auf dem Server ausführen können.
Betroffen sind alle PHP-Versionen der Zweige PHP 8.5 (vor 8.5.12), PHP 8.4 (vor 8.4.27), PHP 8.3 (vor 8.3.36) und PHP 8.2 (vor 8.2.35) sowie sämtliche älteren End-of-Life-Versionen wie PHP 8.1, PHP 8.0 und PHP 7.4. Sicher sind erst die gepatchten Releases ab PHP 8.5.12, PHP 8.4.27, PHP 8.3.36 und PHP 8.2.35 (unter Windows jeweils die Builds mit dem Suffix -1).
Nein! Das ist der gefährlichste Irrtum bei dieser Sicherheitslücke. Da „php2shell“ direkt in der C-basierten PHP-Laufzeitumgebung des Webservers sitzt und bereits während der Entgegennahme des HTTP-Requests greift – noch bevor WordPress oder ein Sicherheitsplugin wie Wordfence überhaupt geladen wird –, schützt nur ein Update der PHP-Version auf Server- bzw. Hosting-Ebene.
Loggen Sie sich in Ihr WordPress-Backend (/wp-admin/) ein und navigieren Sie zu „Werkzeuge -> Website-Zustand -> Bericht (Info) -> Server“. Dort finden Sie die exakte dreistellige PHP-Versionsnummer (z. B. 8.4.27 oder 8.3.36). Alternativ sehen Sie die eingestellte PHP-Version im Kundenmenü Ihres Webhosters (z. B. bei IONOS, Strato, All-Inkl oder Hetzner).
Zeitgleich mit php2shell wurde Ende Oktober 2026 unter CVE-2026-115560 eine weitere kritische RCE-Schwachstelle im PHP-Feature „Session Upload Progress“ bekannt. Solange in der php.ini die Standardeinstellung session.upload_progress.enabled = 1 aktiv ist, können Angreifer über manipulierte Datei-Uploads auch ohne Login vorzeitig Session-Speicherstrukturen manipulieren. Wir empfehlen dringend, neben dem PHP-Update den Wert session.upload_progress.enabled = 0 in der php.ini zu setzen.
Innerhalb eines modernen, aktiv unterstützten PHP-Zweigs (z. B. innerhalb von PHP 8.3 oder PHP 8.4) spielen die meisten Shared- und Managed-Hoster das Sicherheits-Patchlevel (z. B. auf 8.3.36 bzw. 8.4.27) automatisch ein. Wenn Ihre Website jedoch noch auf einer veralteten PHP-Hauptversion wie PHP 7.4, 8.0 oder 8.1 steht, stellt Ihr Hoster diese NICHT automatisch auf PHP 8.4 um, da alte Plugins sonst abstürzen könnten. Auch bei eigenen Cloud- oder Root-Servern müssen Sie das Update zwingend selbst installieren.
Wenn nach dem Wechsel von einer älteren PHP-Version (z. B. 7.4 oder 8.0) auf PHP 8.4 ein kritischer Fehler auftritt, liegt das fast immer an einem veralteten Plugin oder einem alten Theme. Schalten Sie im Hosting-Panel kurzzeitig zurück, aktualisieren Sie im WordPress-Backend sämtliche Plugins und das Theme auf die neueste Version (oder ersetzen Sie nicht mehr weiterentwickelte Alt-Plugins) und stellen Sie anschließend erneut auf PHP 8.3.36 oder PHP 8.4.27 um.
Reine, moderne HTML5-/CSS3-/JS-Websites – wie wir sie standardmäßig in unseren schnellen Website-Mietpaketen (Basic, Complete und Pro ohne CMS-Aufpreis) ausliefern – sind gegen „php2shell“ zu 100 % immun, da auf dem Server gar kein PHP-Code interpretiert wird. Und für alle Kunden, die WordPress mit unserem Pflege- & Wartungspaket nutzen, haben wir die Server- und PHP-Umgebungen bereits vollständig auf den sicheren Patch-Stand gebracht.