PHP2Shell ist behoben.
Ihr PHP auch?

Zwei kritische Lücken in PHP selbst, CVE-2026-109618 und CVE-2026-109619, wurden am 21. Oktober 2026 behoben. Fügen Sie die Ausgabe von php -v ein und sehen Sie, wo Sie stehen.

Version prüfen
VersionsprüfungLäuft in Ihrem Browser
Beispiel. Ersetzen Sie es durch Ihre Ausgabe

Betroffen. Aktualisieren Sie auf 8.3.36.

Starten Sie danach jeden PHP-Worker neu.

php -v zeigt den Kommandozeilen-Build. Ihr Webserver kann einen anderen ausführen. Fragen Sie php-fpm8.3 -v oder rufen Sie phpinfo() über die Website auf.

Schritte für PHP 8.3

Behobene Versionen21. Okt. 2026

PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35
PHP 8.1Backport im Quellcode
PHP 8.0Backport im Quellcode
PHP 7.4Backport im Quellcode
PHP 7.3 and olderkein Fix

Wo die Lücken sitzen

Beide Lücken stecken in PHP, nicht in Ihrem Code. Aktualisieren Sie es, starten Sie die Worker neu, und jede Website auf dem Server ist behoben.

AnfrageGET /index.phpWebserverApache · nginx · LiteSpeedHier liegen beide LückenPHPCVE-2026-109618CVE-2026-109619mod_php · PHP-FPM · php-cgiUpdate + Neustart behebt jede WebsiteIhr CodeWordPress · Laravel · eigenerGET /index.phpAnfrageGET /index.phpWebserverApache · nginx · LiteSpeedPHPHier liegen beide Lückenmod_php · PHP-FPM · php-cgiIhr CodeWordPress · Laravel · eigenerUpdate + Neustart behebt jede Website
Schweregrad
Kritisch, CVSS v4.0 9.2, beide
Erreichbar über
Apache mod_php, PHP-FPM, php-cgi, FrankenPHP, LiteSpeed
Höchstes Risiko
mod_php: ohne Login, ausgelöst bevor Ihr Code läuft
Aktive Angriffe
In den offiziellen Advisories nicht gemeldet, Stand 22. Okt. 2026

Jeder Zweig, eine Zeile

Suchen Sie Ihren Zweig und lesen Sie die Version mit dem Fix ab. Alles darunter ist betroffen.

  • Behobene Version
  • Nur Backport im Quellcode
  • Kein offizieller Fix
  • Geprüft 22. Oktober 2026

Der Balken endet mit dem Support auf php.net

Versionen aus der Ankündigung auf php.net und den beiden Advisories. Lebenszyklen laut php.net supported versions. Die vollständige Tabelle steht auf der Statusseite.

Bis Sie upgraden können

Diese Einstellungen verringern das Risiko. Sicher sind Sie damit nicht. Laut PHP-Projekt hilft nur das Upgrade.

Auch am Proxy

Begrenzen Sie vor PHP Anfragegröße, Anzahl der Felder, Multipart-Teile, Header und Verschachtelungstiefe. Auch für Anfragen ohne Content-Length.

Unter PHP 8.5 zusätzlich fatal_error_backtraces = 0 setzen. Nutzen Sie nie RLIMIT_AS oder RLIMIT_DATA, denn fehlgeschlagene Speicheranforderungen sind genau der Weg dieser Lücke. Quelle: GHSA-w8hw-w9fx-j79w und GHSA-6wmf-4rv5-p3rp.

/etc/php/8.3/fpm/pool.d/www.confgeändert
[www]; bestehende Pool-Einstellungen bleiben, wie sie sind
; CVE-2026-109618, verringert das Risikophp_admin_value[memory_limit] = -1

Kein Speicherlimit

CVE-2026-109618 beginnt, wenn einer Anfrage der Speicher ausgeht. Setzen Sie es mit php_admin_value fest, damit Skripte es nicht wieder senken.

php_admin_value[post_max_size] = 8Mphp_admin_value[upload_max_filesize] = 4M

Kleine Request-Bodys

8M ohne Uploads, 32M mit. upload_max_filesize bleibt unter post_max_size.

php_admin_value[max_input_nesting_level] = 16

Flache Eingaben

Senken Sie die Verschachtelungsgrenze für Formular- und Query-Arrays. 16 ist ein Beispiel, testen Sie den Wert mit Ihrer Anwendung.

; CVE-2026-109619, verringert das Risikophp_admin_flag[session.upload_progress.enabled] = off

Upload-Fortschritt aus

Der Schalter für CVE-2026-109619. Hier oder in der php.ini setzen, nie mit ini_set() oder .user.ini. Nach dem Patchen aus lassen.

php_admin_flag[log_errors] = onphp_admin_value[error_log] = /var/log/php8.3-fpm.www.log

Spuren sichern

Jeden Fehler in eine Datei loggen, die Sie auch lesen, und error_reporting = E_ALL in der php.ini setzen. Ein sauberes Log beweist nichts.

; optional, kostet Durchsatzpm.max_requests = 1

Eine Anfrage pro Worker

Optional und langsam. Jeder Worker beendet sich nach einer Anfrage, so bleibt kein Zustand übrig.

; danach jeden Worker neu starten$ sudo systemctl restart php8.3-fpm

Der kostenlose Fix

  1. Zuerst die Version ablesen.

    php -v meldet den Kommandozeilen-Build. Fragen Sie die Binary, die Ihr Webserver ausführt, oder rufen Sie phpinfo() über die Website auf.

  2. Dann das Paket aktualisieren.

    Nehmen Sie das gepatchte Paket Ihrer Distribution oder bauen Sie die behobene Version von php.net. Ihr Changelog sollte beide CVEs nennen.

  3. Zuletzt jeden Worker neu starten.

    Laufende Worker halten das alte PHP im Speicher, bis sie neu starten. Bei mod_php starten Sie stattdessen Apache neu.

web-01bash

1 von 3 · ablesen

$ php-fpm8.3 -v
PHP 8.3.30 (fpm-fcgi) (built: Oct  2 2026 09:14:52)
Copyright (c) The PHP Group
Zend Engine v4.3.30, Copyright (c) Zend Technologies

2 von 3 · aktualisieren

$ sudo apt update
$ sudo apt install --only-upgrade 'php8.3-*'
The following packages will be upgraded:
  php8.3-cli php8.3-common php8.3-fpm php8.3-opcache
4 upgraded, 0 newly installed, 0 to remove.
Setting up php8.3-fpm (8.3.36-1) ...

3 von 3 · neu starten

$ sudo systemctl restart php8.3-fpm
$ php-fpm8.3 -v
PHP 8.3.36 (fpm-fcgi) (built: Oct 21 2026 18:40:07)
php8.3-fpmpool wwwVor dem NeustartNach dem Neustart8.3.308.3.368.3.308.3.368.3.308.3.368.3.308.3.36$ systemctl restart php8.3-fpm
Das neue Paket wirkt erst, wenn jeder Worker neu gestartet ist.

Die Quellen lesen

Jede Angabe hier verlinkt ihre Quelle und nennt das Datum unserer letzten Prüfung. Wo Quellen sich widersprechen, sagen wir es. Das ChangeLog datiert 8.5.12 und 8.4.27 auf den 22. Oktober, die Ankündigung auf den 21. Oktober. Alle zuletzt geprüft am 22. Oktober 2026.

Soll das jemand für Sie erledigen?
Sagen Sie uns, was Sie betreiben.

Bitte keine Passwörter, SSH-Schlüssel oder API-Keys einfügen. Wir antworten meist zu Bürozeiten (MEZ). Bezahlte Arbeit wird schriftlich vereinbart und in Rechnung gestellt. Incident Response bieten wir nicht an.

Zeiten
Montag bis Freitag, 9:00–18:00 MEZ
Abrechnung
Erst schriftlicher Umfang, dann Rechnung