Kurz gesagt: CVE-2026-115560 ist ein Hinweis, den php.net am 23. Oktober 2026 veröffentlicht hat. Codeausführung aus der Ferne ist danach nur bei einer ungewöhnlichen Session-Konfiguration möglich. Bis zum nächsten regulären Bugfix-Release lautet die Abhilfe: session.upload_progress.enabled=0 serverseitig setzen und alle Worker neu starten.
Was ist CVE-2026-115560?
Zwei Tage nach den Patches für die PHP2Shell-Lücken CVE-2026-109618 und CVE-2026-109619 hat das PHP-Projekt einen weiteren Hinweis veröffentlicht. CVE-2026-115560 betrifft die Session-Verarbeitung von PHP in Verbindung mit der Funktion Session-Upload-Progress, die den Fortschritt laufender Datei-Uploads in der Session ablegt.
Laut php.net ist eine Ausführung von Schadcode aus der Ferne möglich, aber nur bei einer ungewöhnlichen Konfiguration. Der vollständige Advisory mit allen Details soll mit dem nächsten regulären Bugfix-Release folgen. Bis dahin ist der Kenntnisstand bewusst knapp.
Was macht Session-Upload-Progress?
Session-Upload-Progress ist eine Komfortfunktion von PHP. Lädt ein Besucher eine größere Datei hoch, schreibt PHP während des Uploads laufend Angaben zum Fortschritt in die Session: wie viele Daten schon angekommen sind und welche Datei gerade übertragen wird. Eine Anwendung kann diese Angaben parallel abfragen und daraus einen Fortschrittsbalken bauen.
In der Praxis nutzen das nur wenige Anwendungen, denn moderne Upload-Formulare messen den Fortschritt meist direkt im Browser. In PHP ist die Funktion aber standardmäßig eingeschaltet. Deshalb taucht sie sowohl bei CVE-2026-115560 als auch bei den Übergangsmaßnahmen gegen PHP2Shell auf: Was nicht gebraucht wird, sollte abgeschaltet sein.
Wann ist ein Server von CVE-2026-115560 betroffen?
Nach dem Hinweis von php.net müssen drei Bedingungen zusammenkommen:
- In der Konfiguration ist als
session.serialize_handlerder Wertphp_binaryoderphp_serializeeingetragen. - Die Anwendung stellt diesen Wert zur Laufzeit per
ini_set()aufphpum, bevor siesession_start()aufruft. - Session-Upload-Progress ist aktiv.
Der Standardwert von session.serialize_handler ist php. Eine Umstellung in der Konfiguration und ein Zurückstellen im Code ist ungewöhnlich, kommt aber in gewachsenen Eigenentwicklungen oder bei Bibliotheken mit eigener Session-Behandlung vor. Ob das bei Ihnen zutrifft, lässt sich prüfen.
So prüfen Sie Ihre Konfiguration
Zuerst die wirksamen Werte. Die CLI kann eine andere php.ini lesen als PHP-FPM oder mod_php; prüfen Sie deshalb auch die Konfiguration des Webservers oder FPM-Pools.
php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null # Pfad je Distribution verschieden
Danach den Anwendungscode. Die folgende Suche ist rein lesend und zeigt Stellen, an denen der Handler zur Laufzeit gesetzt wird:
grep -rn "session.serialize_handler" /var/www/ --include="*.php"
Findet die Suche nichts und steht der Handler in der Konfiguration auf php, ist die beschriebene Kombination unwahrscheinlich. Abschalten sollten Sie Session-Upload-Progress trotzdem, denn php.net nennt dieselbe Einstellung auch als Übergangsmaßnahme gegen PHP2Shell.
Abhilfe: session.upload_progress.enabled=0
Setzen Sie den Wert in der php.ini, im FPM-Pool oder in der Serverkonfiguration. Laut php.net ausdrücklich nicht über ini_set() oder .user.ini, denn dort greift er zu spät oder kann von der Anwendung überschrieben werden.
; php.ini (für alle Pools und SAPIs, die diese Datei lesen)
session.upload_progress.enabled = 0
; oder im FPM-Pool
php_admin_flag[session.upload_progress.enabled] = off
# Apache mit mod_php, im VirtualHost oder in der Serverkonfiguration
php_admin_flag session.upload_progress.enabled off
Anschließend alle PHP-Worker neu starten, zum Beispiel systemctl restart php8.3-fpm oder Apache bei mod_php. Paket- und Dienstnamen weichen je Distribution ab. Ohne Neustart läuft die alte Einstellung weiter. Mehr dazu unter PHP-FPM und alle Worker neu starten.
Prüfen Sie nach dem Neustart, ob die Einstellung wirklich greift: im Webkontext, nicht nur auf der Kommandozeile. Eine kurz eingerichtete, zugriffsgeschützte phpinfo-Seite zeigt den wirksamen Wert; löschen Sie sie danach sofort.
Einordnung neben PHP2Shell
CVE-2026-115560 ist deutlich enger als die beiden PHP2Shell-Lücken, die in den üblichen Betriebsarten ohne besondere Konfiguration greifen. Wer gerade priorisieren muss, sollte zuerst das PHP2Shell-Update einspielen und dann session.upload_progress.enabled=0 setzen. Beides zusammen ist in einem Wartungsfenster machbar.
Für Geschäftsführung und Nicht-Techniker: CVE-2026-115560 ist kein Grund zur Unruhe, aber ein Punkt auf der Liste. Die Einstellung ist schnell gesetzt, wirkt sich auf kaum eine Anwendung spürbar aus und deckt zugleich eine der Übergangsmaßnahmen gegen PHP2Shell ab. Die weiteren Übergangsmaßnahmen von php.net stehen unter Sofortmaßnahmen, wenn Sie noch nicht patchen können, allgemeine Hinweise zur Session-Konfiguration unter Sessions in PHP absichern.
Was wir noch nicht wissen: welche PHP-Versionen genau betroffen sind und welches Release die Korrektur bringt. Wir aktualisieren diese Seite, sobald der Advisory erscheint.
Wie hilft PHP SOS konkret?
Im Rahmen der Server-Härtung setzen wir die Abhilfe dauerhaft und prüfbar um:
- Konfiguration lesen: wirksame Session-Werte je SAPI, Pool und virtuellem Host.
- Code durchsuchen: Stellen, an denen Handler oder Session-Optionen zur Laufzeit geändert werden.
- Abschalten an der richtigen Stelle: in php.ini, Pool oder Serverkonfiguration, nicht überschreibbar durch die Anwendung, mit anschließendem Neustart.
- Nachverfolgen: Wenn das Bugfix-Release erscheint, spielen wir es ein und dokumentieren den Stand.
Häufige Fragen
Ist CVE-2026-115560 Teil von PHP2Shell?
Die Meldung kam zwei Tage nach den PHP2Shell-Patches und betrifft ebenfalls PHP selbst. Sie ist aber eine eigene Lücke mit eigener CVE-Nummer und greift nur bei einer bestimmten, ungewöhnlichen Konfiguration. Die PHP2Shell-Updates vom 21. Oktober beheben sie nach bisherigem Stand nicht.
Gibt es schon ein Update gegen CVE-2026-115560?
Nach dem Stand vom 25.10.2026 nein. php.net kündigt an, dass der vollständige Advisory mit dem nächsten regulären Bugfix-Release folgt. Bis dahin ist session.upload_progress.enabled=0 die empfohlene Abhilfe.
Was bricht, wenn ich Session-Upload-Progress abschalte?
Die Funktion meldet den Fortschritt laufender Datei-Uploads an die Anwendung. Nur Anwendungen, die einen solchen Fortschrittsbalken über diese PHP-Funktion umsetzen, verlieren die Anzeige. Der Upload selbst funktioniert weiter.