Skip to main contentSkip to footer
Sicherheitsnews

php2shell: CVE-2026-109618 und CVE-2026-109619 in PHP und was zu tun ist

php2shell banner: CVE-2026-109618 in the PHP core, CVSS 9.2, 2 flaws in PHP 5 to 8, and Hive 3.0.4 switching off session upload progress per site

php2shell ist der Name für zwei kritische Schwachstellen in PHP selbst, CVE-2026-109618 und CVE-2026-109619, die Angreifern das Ausführen von Code aus der Ferne erlauben und mit 9,2 nach CVSS v4.0 bewertet sind. Die Details sickerten am 20. Oktober 2026 durch, einen Tag vor Ende der Sperrfrist, und das PHP-Team zog sein Sicherheitsrelease auf den 21. Oktober 2026 um 14:00 Uhr UTC vor.

Aktualisieren Sie PHP, sobald Ihr Hoster oder Ihre Distribution den Fix ausliefert. Bis dahin schließt eine einzige PHP-Einstellung den bekannten Angriffsweg, und ReportedIP Hive 3.0.4 setzt sie für Sie, wenn der Erweiterte Schutz aktiv ist.

Was ist php2shell?

php2shell umfasst zwei Fehler im PHP-Kern, nicht in WordPress, einem Plugin oder einem Theme. CERT-EU hält sie in seinem Advisory 2026-018 für möglicherweise ohne Anmeldung ausnutzbar. Berichten zufolge sind PHP 5 bis PHP 8 betroffen. Offizielle Fixes werden nur für die unterstützten Zweige erwartet, also ab PHP 8.2.

Am 21. Oktober 2026 erklärte ein Sicherheitsforscher, er habe beide Lücken nachgebaut. Nach seiner Darstellung handelt es sich um zwei Heap-Use-after-free-Fehler im Handler für session.upload_progress, der Funktion php_session_rfc1867_callback in ext/session/session.c. Das PHP-Team hat das noch nicht bestätigt, das offizielle Advisory erscheint mit dem Release.

Datum (UTC)Ereignis
20. Oktober 2026, 15:20Ein Beitrag mit Details unter Sperrfrist erscheint auf Hacker News und wird entfernt
20. Oktober 2026, 19:33Das PHP-Team kündigt das Sicherheitsrelease einen Tag früher an
20. Oktober 2026CERT-EU veröffentlicht das Advisory 2026-018
21. Oktober 2026Ein Forscher meldet einen funktionierenden Nachbau im Upload-Progress-Handler
21. Oktober 2026, 14:00Geplantes PHP-Sicherheitsrelease

Warum kann eine WordPress-Firewall php2shell nicht aufhalten?

Session Upload Progress ist eine PHP-Funktion, die meldet, wie weit ein Datei-Upload fortgeschritten ist. PHP führt sie aus, während es den Body einer Multipart-Anfrage liest, sobald ein Formularfeld namens PHP_SESSION_UPLOAD_PROGRESS zusammen mit einem Session-Cookie ankommt. Das geschieht beim Start der Anfrage, bevor PHP die erste Zeile irgendeines Skripts ausführt.

Eine Plugin-Firewall läuft später, auch die früheste Variante. Der Hive-Wächter vor WordPress wird über auto_prepend_file geladen, und PHP führt diese Datei erst aus, wenn der Body der Anfrage bereits verarbeitet ist. Steckt der Fehler im Upload-Progress-Handler, ist der Schaden angerichtet, bevor irgendein PHP-Code die Anfrage prüfen kann. Das gilt für jedes Sicherheitsplugin, nicht nur für Hive.

Ein Plugin kann aber eine PHP-Einstellung pro Verzeichnis ändern. session.upload_progress.enabled lässt sich in einer .user.ini oder einer .htaccess setzen, und PHP liest diese Dateien, bevor es den Body verarbeitet. Ist die Einstellung aus, überspringt PHP den Upload-Progress-Handler vollständig.

Was ändert Hive 3.0.4?

Hive 3.0.4 ergänzt eine Zeile im Markierungsblock, den der Erweiterte Schutz ohnehin für seinen Wächter schreibt. WordPress selbst, WooCommerce und die gängigen Formular-Plugins nutzen Upload Progress nicht, Uploads funktionieren also wie bisher.

Server-UmgebungDateiZeile, die Hive ergänzt
PHP-FPM, CGI oder LiteSpeed.user.ini im WordPress-Hauptverzeichnissession.upload_progress.enabled=Off
Apache mit mod_php.htaccess im WordPress-Hauptverzeichnisphp_flag session.upload_progress.enabled off
nginx ohne erkanntes PHP-FPMkeineZeile selbst in der php.ini setzen

Websites mit Erweitertem Schutz übernehmen die Zeile innerhalb einer Stunde, nachdem ein Administrator eine beliebige Admin-Seite geöffnet hat. Soll sie sofort greifen, schalten Sie den Erweiterten Schutz auf der Seite „Schutz“ im Tab „Firewall“ aus und wieder ein. PHP-FPM hält .user.ini-Dateien standardmäßig bis zu 5 Minuten im Cache. Wir haben das Ergebnis auf unserem Apache-Teststack geprüft: ini_get() lieferte vor dem Update on und danach off.

Auf Websites ohne Erweiterten Schutz ändert sich nichts, denn Hive schreibt diese Dateien erst, wenn Sie zugestimmt haben. Die Dokumentation zum Erweiterten Schutz erklärt, auf welchen Servern Hive sich selbst einbinden kann.

Wie schalten Sie Session Upload Progress selbst ab?

Am sichersten ist die Serverkonfiguration, weil sie alle Websites auf dem Server abdeckt. Tragen Sie diese Zeile in die php.ini jeder PHP-Version ein, die Websites ausliefert, oder in das Feld für eigene PHP-Einstellungen in Ihrem Hosting-Panel:

session.upload_progress.enabled = Off
  • Laden Sie PHP-FPM danach neu, zum Beispiel mit systemctl reload php8.3-fpm.
  • Prüfen Sie den Wert mit php-fpm8.3 -i | grep upload_progress. Der Befehl php -i zeigt die Konfiguration der Kommandozeile, nicht die des Webservers.
  • Suchen Sie nach Pool-Dateien, die den Wert per php_admin_value wieder auf on setzen.
  • Bei Shared Hosting ohne Zugriff auf die php.ini legen Sie die Zeile in eine .user.ini im Web-Root.

Das PHP-Handbuch beschreibt die Funktion auf seiner Seite zu Session Upload Progress. Unser Schwesterunternehmen CMS ADMINS hat sie am 21. Oktober 2026 auf allen betreuten Servern abgeschaltet, für jede installierte Version von PHP 5.6 bis 8.4, und fasst das Leck auf Deutsch zusammen: php2shell bei CMS ADMINS.

Was tun, wenn der PHP-Patch erschienen ist?

  1. Spielen Sie das PHP-Sicherheitsrelease zuerst auf allen Servern ein, die aus dem Internet erreichbar sind.
  2. Für PHP 8.1 und älter fragen Sie Ihren Hoster oder Ihre Distribution nach einem Backport, oder ziehen Sie die Website auf PHP 8.2 oder neuer um.
  3. Lassen Sie Upload Progress aus, bis das Advisory bestätigt, welcher Teil von PHP betroffen war.
  4. Achten Sie auf PHP-Worker-Prozesse, die Shells, curl, wget oder python starten. Dieses Muster zeigt einen erfolgreichen Angriff.
  5. Bei Verdacht auf eine Kompromittierung nehmen Sie den Server vom Netz, sichern die Logs von Webserver und PHP und durchsuchen den Web-Root nach neuen PHP-Dateien.

Die Grenzen des Plugins stehen in der Hive-Anleitung. Ein Fehler in der PHP-Laufzeit gehört dazu: Das Plugin kann die Angriffsfläche verkleinern, beseitigen kann den Fehler nur das PHP-Update.

Häufige Fragen

Funktionieren WordPress-Uploads noch, wenn Upload Progress aus ist?

Ja, das Abschalten von Session Upload Progress lässt Uploads unberührt. Die Einstellung steuert nur die Fortschrittsdaten, die PHP während eines Uploads in die Session schreibt. WordPress zeigt seinen eigenen Fortschrittsbalken im Browser und liest diese Daten nicht, deshalb funktionieren Medien-Uploads, Plugin-Installationen und Formularanhänge unverändert.

Ist meine Website sicher, wenn WordPress und alle Plugins aktuell sind?

Ein aktuelles WordPress schützt nicht vor php2shell, weil die Lücken in PHP unterhalb von WordPress liegen. Entscheidend sind die PHP-Version auf dem Server und ob Upload Progress abgeschaltet ist. Die PHP-Version finden Sie unter Werkzeuge, Website-Zustand, Info, im Abschnitt Server.

Welche Hive-Version setzt die Einstellung?

ReportedIP Hive 3.0.4, erschienen am 21. Oktober 2026, setzt die Einstellung auf Websites, auf denen der Erweiterte Schutz eingeschaltet ist. Sie gehört zum kostenlosen Plugin von wordpress.org und braucht keinen bezahlten Tarif. Websites ohne Erweiterten Schutz brauchen die php.ini-Zeile aus diesem Artikel.

Weiterlesen

Eine frühere Schwachstelle, gegen die die Hive-Firewall half: CVE-2026-19949 in All-in-One WP Migration. Die aktuelle Release-Linie begann mit Hive 3.0 auf wordpress.org.

Schützen Sie Ihre WordPress-Website mit Bedrohungsdaten aus der Community, Zwei-Faktor-Anmeldung und einer zweistufigen Firewall.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fill out this field
Fill out this field
Bitte geben Sie eine gültige E-Mail-Adresse ein.
You need to agree with the terms to proceed