Haftungsausschluss: Benutzung auf eigene Gefahr. Dieser Artikel beschreibt, was auf unseren eigenen Ubuntu-Servern mit Laravel Forge funktioniert hat. Ihre Konfiguration kann abweichen. Jeder der folgenden Befehle ändert Pakete auf einem Produktivserver. Erstellen Sie daher vorher einen Snapshot oder ein Backup, testen Sie die Befehle nach Möglichkeit auf einem Testserver und lesen Sie jeden Befehl sorgfältig durch, bevor Sie ihn ausführen. Wir übernehmen keine Gewährleistung und haften nicht für Schäden, Ausfallzeiten oder Datenverlust.
Letzte Aktualisierung: 22. Oktober 2026.
Was ist passiert
Am 21. Oktober 2026 veröffentlichte das PHP-Projekt die Versionen PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35. Diese Versionen beheben zwei kritische Sicherheitslücken, die es ermöglichten, … nicht authentifizierte Remote-Codeausführung. Das PHP-Sicherheitsteam bewertete beide mit 9,2 Punkten auf der CVSS-v4.0-Skala. Details waren bereits einen Tag vor der Veröffentlichung durchgesickert, daher sollten Sie die Sicherheitslücken so schnell wie möglich beheben.
- CVE-2026-109618 (GHSA-w8hw-w9fx-j79w), RCE durch OOM-Beschädigung: Die Behandlung von Speichermangel kann PHP unterbrechen, während die Anforderungsdaten nur teilweise initialisiert sind.
- CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp), RCE durch veralteten globalen Zustand: Der Zustand einer Anfrage kann erhalten bleiben, nachdem sein Speicher freigegeben wurde, und eine spätere Anfrage auf demselben Worker kann ihn verwenden.
Jede PHP-Installation, die Webanfragen verarbeitet, ist gefährdet: PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed. PHP selbst stuft mod_php als das größte Risiko ein. Für PHP 8.1 und ältere Versionen gibt es keine offizielle Fehlerbehebung mehr vom PHP-Projekt.
Erstens: Die “Ign”-Zeilen sind nicht Ihr Problem.
Auf Forge-Servern, apt update Es können Zeilen wie diese ausgegeben werden:
IGN:18 https://ppa.launchpadcontent.net/laravelphp/forge/ubuntu noble InRelease Hit:19 https://ppa.launchpadcontent.net/ondrej/php/ubuntu noble InReleaseZündung Das bedeutet, dass apt den Index des Laravel Forge PPA nicht abrufen konnte und ihn übersprungen hat. Dies ist eine Warnung, kein Fehler, und verschwindet normalerweise, sobald Launchpad weniger ausgelastet ist. Wichtiger ist jedoch, dass PHP selbst nicht aus diesem PPA stammt. Das Forge PPA enthält nur wenige Erweiterungen (php-imagick, php-memcached, php-msgpack). PHP stammt aus dem Repository von Ondřej Surý (ondrej/php), also ist das diejenige, die man sich ansehen sollte.
Schritt 1: Finden Sie heraus, was Sie laufen
lsb_release -cs # jammy = Ubuntu 22.04, noble = Ubuntu 24.04 ls /etc/php # welche PHP-Versionen sind installiert sudo apt update apt-cache policy php8.3-fpm php8.4-fpm | grep -E '^php|Installed|Candidate''Füge dem letzten Befehl alle installierten PHP-Versionen hinzu. Dein System ist gepatcht, sobald die installierte Version … ist. 8.5.12, 8.4.27, 8.3.36 oder 8.2.35 (oder neuer). Wenn Installiert und Kandidat Beide zeigen eine ältere Version an; Ihr Repository bietet die Korrektur noch nicht an. Lesen Sie in diesem Fall Schritt 2 und anschließend Schritt 3B.
Schritt 2: Fügen Sie die Übergangslösungen hinzu, während Sie warten
Diese Einstellungen verringern die Anfälligkeit für bestimmte Angriffswege. nicht Einen Server sicher machen; nur das Update gewährleistet dies. Legen Sie die Dateien in eine separate Datei, anstatt sie zu bearbeiten. php.ini, weil Forge möglicherweise umschreibt php.ini:
for v in 8.3 8.4; do printf 'session.upload_progress.enabled = 0\nsession.use_strict_mode = 1\n' \ | sudo tee /etc/php/$v/fpm/conf.d/99-php2shell-mitigation.ini sudo systemctl restart php$v-fpm done # Check (should show 0 and 1): php-fpm8.3 -i | grep -E 'upload_progress.enabled|use_strict_mode''Ändern 8.3 8.4 auf Ihrem Server. Sie können diese Datei nach dem Patchen behalten: PHP empfiehlt den strikten Sitzungsmodus für jede Website, und nur wenige Anwendungen nutzen die Upload-Fortschrittsanzeige.
Schritt 3A: Upgrade vom Ondrej PPA (falls dieser den Fix enthält)
Am Tag der Veröffentlichung hinkte Ondřejs Launchpad PPA hinterher. Inzwischen wurden die korrigierten Builds für Ubuntu 22.04 und 24.04 veröffentlicht. apt-cache-Richtlinie zeigt die korrigierte Version als Kandidaten an, aktualisieren Sie nur die PHP-Pakete:
sudo apt-get install -s --only-upgrade 'php*' | grep -E '^Inst' # dry run first sudo apt-get install --only-upgrade 'php*''Behalte die Anführungszeichen bei ''php*'', Damit Ihre Shell das Sternchen nicht erweitert, fahren Sie mit Schritt 4 fort.
Schritt 3B: Wechseln Sie zu packages.sury.org (falls das PPA noch nicht aktualisiert ist)
Ondřej veröffentlicht seine Pakete auch bei packages.sury.org, Und dieses Repository enthielt zuerst die korrigierten Builds. Das Launchpad PPA wird ohnehin darin integriert, daher ist ein Wechsel jetzt kein Umweg. nicht Aktivieren Sie nicht beide gleichzeitig: Zwei Quellen für dieselben Pakete führen zu verwirrenden Upgrade-Kandidaten.
1. Verschieben Sie das Ondrej-PPA (durch Verschieben statt Löschen können Sie später wieder zurückwechseln). Lassen Sie das laravelphp/forge PPA allein.
grep -rl 'ondrej/php' /etc/apt/sources.list.d/ # Verschieben Sie die aufgelisteten Dateien, zum Beispiel: sudo mv /etc/apt/sources.list.d/ondrej-ubuntu-php-noble.sources /root/2. Fügen Sie packages.sury.org hinzu. $(lsb_release -cs) Teilweise werden die Felder Ihrer eigenen Ubuntu-Version ausgefüllt. Nicht tippen edel oder Jammy von Hand; Siehe den unten stehenden Fehler.
sudo curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg printf 'Types: deb\nURIs: https://packages.sury.org/php/\nSuites: %s\nComponents: main\nSigned-By: /usr/share/keyrings/deb.sury.org-php.gpg\n' "$(lsb_release -cs)" \ | sudo tee /etc/apt/sources.list.d/php.sources sudo apt update apt-cache policy php8.3-fpm php8.4-fpm | grep -E '^php|Installed|Candidate''Der Kandidat sollte nun eine korrigierte Version sein, wie zum Beispiel 8.3.36-1+0~20261021… kommt von packages.sury.org/php. Falls ja, führen Sie den Trockenlauf durch und aktualisieren Sie ab Schritt 3A.
Der Fehler “Nicht erfüllte Abhängigkeiten” (libc6, libssl3t64, libicu74)
Wenn das Upgrade mit einer Meldung wie dieser fehlschlägt:
php8.3-cli: Abhängigkeiten: libc6 (>= 2.38), aber 2.35-0ubuntu3.15 soll installiert werden. Abhängigkeiten: libssl3t64 (>= 3.0.0), aber es ist nicht installierbar. E: Probleme konnten nicht behoben werden, da beschädigte Pakete zurückgehalten werden.Dann verweist das Repository auf die falsche Ubuntu-Version. libc6 2.35 Das bedeutet, dass auf dem Server Ubuntu 22.04 (jammy) läuft, apt aber Builds für 24.04 (noble) anbietet. Es wurde nichts installiert; apt wurde vor jeglichen Änderungen abgebrochen. Korrigieren Sie die Suite und versuchen Sie es erneut.
sudo sed -i "s/^Suites: .*/Suites: $(lsb_release -cs)/" /etc/apt/sources.list.d/php.sources sudo apt updateSchritt 4: Starten Sie alles neu und überprüfen Sie die Einstellungen.
Ein laufender Prozess hält die alte PHP-Version im Speicher, bis er neu gestartet wird. Ein reines Paket-Upgrade reicht nicht aus.
sudo systemctl restart php8.3-fpm php8.4-fpm php artisan queue:restart # auf jeder Laravel-Website; außerdem die Daemons Horizon, Octane und Supervisor neu starten # Apache mit mod_php benötigt einen vollständigen Neustart (ein Reload reicht nicht aus): # sudo systemctl restart apache2 # Installierte Versionen prüfen: dpkg -l 'php8.[34]-fpm' | awk '/^ii/{print $2, $3}' # Prozesse auflisten, die noch die alte PHP-Version verwenden (leere Ausgabe = alles in Ordnung): sudo grep -lE ' /(usr|lib|opt).*\(deleted\)$' /proc/[0-9]*/mapsIst packages.sury.org ein sicheres Repository?
Es ist genauso vertrauenswürdig wie das Launchpad PPA, da es vom selben Entwickler betreut wird und dieselben Pakete verwendet werden. Ondřej Surý ist Debian-Entwickler und pflegt PHP in Debian. Wenn Ihr Server bereits verwendet ppa:ondrej/php (Das macht jeder Forge-Server), du vertraust ihm bereits. Pakete sind signiert, und die Unterschrieben von Die Zeile beschränkt seinen Schlüssel auf dieses eine Repository.
Wichtig: Es handelt sich um ein externes, von Freiwilligen betriebenes Repository, das nicht von Canonical unterstützt wird. Der Schlüssel wird von derselben Domain wie die Pakete heruntergeladen. Um dies zu überprüfen, vergleichen Sie die Ausgabe von gpg --show-keys /usr/share/keyrings/deb.sury.org-php.gpg mit dem von Ondřej veröffentlichten Fingerabdruck. Für einen ungepatchten Server mit einer durchgesickerten RCE ist das Belassen am selben Ort das weitaus größere Risiko.
Hinweise für Laravel Forge-Nutzer
- Wenn Sie später über das Forge-Panel eine neue PHP-Version installieren, kann Forge diese hinzufügen.
ppa:ondrej/phpNochmals nachfragen.grep -rl ondrej /etc/apt/sources.list.d/Und verschieben Sie es, wenn Sie zu packages.sury.org gewechselt haben. - Forge-Server verwenden oft mehrere PHP-Versionen. Patchen und starten Sie alle neu, nicht nur die Standard-CLI-Version.
- Verwenden Sie Drop-in-Dateien in
conf.dfür Ihre eigenen Einstellungen, damit diese das Überschreiben durch Forge überstehen.php.ini.
Quellen
- Mattias Geniar: PHP CVE-2026-109618 und CVE-2026-109619, wie man die Patches anwendet
- Mattias Geniar: Frühe Abhilfemaßnahmen
- Ondřej Surýs PPA für PHP auf Launchpad
- packages.sury.org/php
- Ubuntu CVE-Tracker: CVE-2026-109618
Nochmals: Benutzung auf eigene Gefahr. Dies ist ein Erfahrungsbericht, der unsere Vorgehensweise beschreibt und keine professionelle Beratung darstellt. Beachten Sie die offiziellen PHP-Empfehlungen und prüfen Sie die Quellcodes Ihrer eigenen Pakete. Erstellen Sie vorher ein Backup und testen Sie die Änderungen auf den Produktivservern.
Letzte Aktualisierung: 22. Oktober 2026
