IT-Security KI-gestützt erstellt · redaktionell geprüft

pfSense und php2shell: So spielst du das PHP-Update von Netgate ein

2026-10-22 · 11 Min. Lesezeit · Benjamin Kaulfuss
pfSense und php2shell: So spielst du das PHP-Update von Netgate ein

Stand aller Angaben: 22. Oktober 2026. Grundlage ist die Sicherheitsmeldung von Netgate vom 21. Oktober 2026. Prüfe vor dem Update, ob Netgate die Hinweise inzwischen ergänzt hat. Dieser Beitrag enthält einen als Werbung gekennzeichneten Amazon-Partnerlink.

Gestern haben wir im Beitrag zu php2shell beschrieben, wie du die beiden kritischen PHP-Lücken CVE-2026-109618 und CVE-2026-109619 auf Linux-Servern schließt. Dort stand auch: Firewalls wie pfSense bauen ihre Weboberfläche auf PHP auf, und hier musst du auf den Hersteller warten. Das Warten hat sich erledigt. Netgate hat noch am selben Tag gepatchte PHP-Pakete für pfSense Plus und pfSense CE veröffentlicht.

Der Haken: Das Update erscheint nicht als gewohnter Hinweis auf dem Dashboard, und es lässt sich auch nicht per Klick einspielen. Du brauchst eine Shell. Dieser Beitrag zeigt dir, wie dringend es bei dir ist, wie du das Update sicher einspielst, ohne dich auszusperren, und wie du hinterher nachweist, dass der Fix wirklich läuft.

Die kurze Antwort

Öffne eine Shell auf deiner pfSense (SSH oder Konsole, Menüpunkt 8) und führe pfSense-upgrade -c && pkg upgrade -y && pkg upgrade -fy pfSense-pkg-WireGuard && /etc/rc.reboot aus. Danach muss php -v auf pfSense Plus 26.07, Plus 26.03.1 und CE 2.9.0 die Version 8.5.12 zeigen, auf CE 2.8.1 die Version 8.3.36. Bist du per WireGuard verbunden, nimm für das Update einen anderen Zugang, denn die Verbindung bricht dabei wahrscheinlich ab. Läuft bei dir eine ältere pfSense-Version, hilft nur das Upgrade auf ein aktuelles Release.

Wie dringend ist es bei dir?

Netgate ordnet die Lage nüchtern ein: Die Lücken sind nur dann ein akutes Problem, wenn die PHP-Weboberfläche oder das Captive Portal für Angreifer erreichbar sind. Im Auslieferungszustand ist die Oberfläche nur aus dem lokalen Netz (LAN) erreichbar, nicht aus dem Internet (WAN), und das Captive Portal ist abgeschaltet. Daraus ergibt sich diese Reihenfolge:

Deine SituationEmpfehlung laut NetgateDringlichkeit
Weboberfläche aus dem Internet oder einem anderen nicht vertrauenswürdigen Netz erreichbarPHP sofort aktualisieren, Regeln korrigieren, Oberfläche künftig nur noch sicher erreichen, etwa per VPNSofort
Captive Portal aktiv, zum Beispiel für ein Gäste-WLANSo bald wie möglich aktualisieren, denn das Portal ist per Konstruktion für fremde Geräte erreichbarHeute
Kein Captive Portal, Oberfläche nur aus einem Verwaltungsnetz erreichbarNicht unmittelbar betroffen, aber trotzdem aktualisieren, wenn es passtZeitnah

Unterschätze die dritte Zeile nicht. „Nur aus dem LAN erreichbar“ heißt in vielen kleinen Netzen: erreichbar von jedem Laptop, jedem Drucker und jeder Kamera im selben Netz. Ein kompromittiertes Gerät im LAN ist genau der Angreifer, vor dem die Standardeinstellung nicht schützt. Wenn deine Oberfläche nicht in einem eigenen Verwaltungsnetz liegt, plane das Update deshalb eher für heute als für irgendwann.

Zu Angriffen auf pfSense-Systeme macht Netgate keine Angaben. Für PHP allgemein waren zum Zeitpunkt der Veröffentlichung keine bestätigten Angriffe in freier Wildbahn bekannt. Die Hintergründe zu den Lücken selbst findest du im php2shell-Beitrag.

Diese Versionen bekommen den Fix

pfSense-VersionPHP nach dem Update
pfSense Plus 26.078.5.12
pfSense Plus 26.03.18.5.12
pfSense CE 2.9.08.5.12
pfSense CE 2.8.18.3.36
Ältere Versionenkeine gepatchten Pakete angekündigt, Upgrade auf ein aktuelles Release nötig

Die Netgate-Meldung betrifft ausschließlich pfSense. Für OPNsense gilt diese Anleitung nicht: Das ist ein eigenständiges Projekt mit eigenen Paketen und eigenem Updateweg unter System, Firmware. Die Befehle unten sind dort weder nötig noch geeignet.

Schritt 1: Version und PHP-Stand prüfen

Welche pfSense-Version läuft, siehst du auf dem Dashboard im Kasten „System Information“. Schneller und genauer geht es in der Shell, denn dort siehst du auch gleich die installierte PHP-Version:

# pfSense-Version
cat /etc/version

# Aktuell laufende PHP-Version
php -v

# Installierte PHP-Pakete mit Versionsnummer
pkg info -x '^php'

Notiere dir die Ausgaben. Zeigt php -v schon 8.5.12 beziehungsweise 8.3.36, hat jemand das Update bereits eingespielt, und du kannst direkt zu Schritt 6 springen und es nachweisen.

Schritt 2: Prüfen, wer die Oberfläche erreicht

Bevor du aktualisierst, verschaff dir Klarheit, ob deine pfSense in die erste Zeile der Tabelle oben gehört. Drei Stellen in der Weboberfläche sind entscheidend:

  • Firewall, Rules, WAN: Gibt es eine Regel, die Verkehr auf This Firewall oder die WAN-Adresse an Port 443, 80 oder den Port der Oberfläche durchlässt? Dann ist sie aus dem Internet erreichbar. Gleiches gilt für Regeln auf anderen Schnittstellen mit fremden Geräten, etwa einem Gästenetz.
  • System, Advanced, Admin Access: Hier steht, auf welchem Port die Oberfläche läuft. Prüfe die Regeln aus dem ersten Punkt mit genau diesem Port.
  • Services, Captive Portal: Steht hier eine Zone, ist das Captive Portal in Betrieb.

Ob die Oberfläche von außen wirklich antwortet, testest du am besten von einem Rechner außerhalb deines Netzes, zum Beispiel von einem Cloudserver oder über das Mobilfunknetz. Ersetze Adresse und Port durch deine Werte:

curl -skI --max-time 5 https://203.0.113.10:443/ | head -1

Kommt eine HTTP-Antwort zurück, ist deine Oberfläche aus dem Internet erreichbar. Kommt nach fünf Sekunden nichts, ist das ein gutes Zeichen. Findest du eine offene Regel, deaktiviere sie sofort, noch vor dem Update. Wie du dabei gleich die übrigen Regeln aufräumst, beschreibt unser Beitrag Firewall-Regeln bereinigen.

Schritt 3: Vorher sichern

Ein Paketupdate auf pfSense ist normalerweise unproblematisch, aber an der Firewall hängt das ganze Netz. Sichere deshalb die Konfiguration, bevor du etwas änderst. In der Weboberfläche geht das unter Diagnostics, Backup & Restore mit „Download configuration as XML“. Alternativ holst du dir die Datei per SSH von deinem Rechner aus:

scp admin@192.168.1.1:/cf/conf/config.xml ./pfsense-config-$(date +%F).xml

Läuft deine pfSense als virtuelle Maschine, etwa unter Proxmox, ist ein Snapshot vor dem Update der schnellste Rückweg. Wer Proxmox ohnehin nutzt, sollte die Firewall-VM außerdem regelmäßig auf einen getrennten Backup-Server sichern. Unser Managed Proxmox Backup Server übernimmt genau das, und wie eine belastbare Sicherung grundsätzlich aussieht, steht im Beitrag zur 3-2-1-Backup-Strategie.

Schritt 4: Eine Shell öffnen, ohne dich auszusperren

Netgate schreibt ausdrücklich: Die PHP-Pakete lassen sich weder über die pfSense-Weboberfläche noch über die Nexus-Oberfläche aktualisieren. Du hast zwei Wege in die Shell:

  • Konsole: Monitor und Tastatur am Gerät, serielle Konsole oder die Konsole deines Hypervisors. Im Menü wählst du Punkt 8) Shell. Das ist der sicherste Weg, weil er von keiner Netzwerkverbindung abhängt.
  • SSH: Ist SSH noch nicht aktiv, schaltest du es unter System, Advanced, Admin Access bei „Secure Shell“ ein. Nach dem Login als admin landest du im selben Menü und wählst ebenfalls Punkt 8.

Schritt 5: Das Update einspielen

Netgate nennt drei Varianten. Alle drei laden zuerst den aktuellen Paketstand, aktualisieren alle Pakete und installieren WireGuard neu. Sie unterscheiden sich nur darin, was danach neu gestartet wird. Die Befehle stammen unverändert aus der Netgate-Meldung.

Methode 1, Best Practice: alles aktualisieren und neu starten. Das ist die Empfehlung von Netgate, weil ein Neustart auch andere kürzlich aktualisierte Dienste sauber neu lädt:

pfSense-upgrade -c && \
pkg upgrade -y && \
pkg upgrade -fy pfSense-pkg-WireGuard && \
/etc/rc.reboot

Methode 2: aktualisieren und alle Webdienste neu starten. Ohne Neustart des Geräts, aber mit Weboberfläche und Captive Portal. Das ist die richtige Wahl, wenn du ein Captive Portal betreibst und keinen Neustart einplanen kannst:

pfSense-upgrade -c && \
pkg upgrade -y && \
pkg upgrade -fy pfSense-pkg-WireGuard && \
/etc/rc.php-fpm_restart && \
/etc/rc.restart_webgui && \
/etc/rc.captiveportal_configure

Methode 3: aktualisieren und nur die Weboberfläche neu starten. Laut Netgate unbedenklich, wenn du kein Captive Portal nutzt:

pfSense-upgrade -c && \
pkg upgrade -y && \
pkg upgrade -fy pfSense-pkg-WireGuard && \
/etc/rc.php-fpm_restart && \
/etc/rc.restart_webgui

Die Verkettung mit && sorgt dafür, dass jeder Befehl nur läuft, wenn der vorherige erfolgreich war. Bricht etwas ab, bleibt die Kette stehen, und du siehst die Fehlermeldung direkt darüber. Wie bei jedem PHP-Update gilt: Erst der Neustart der PHP-Prozesse bringt den neuen Code in den Speicher. Wer nur pkg upgrade ausführt und dann aufhört, ist nicht geschützt.

Unterstützung von K&C NetFox
Wir aktualisieren deine pfSense

Keine Lust, an der Firewall in der Shell zu arbeiten, an der das ganze Büro hängt? Wir spielen das PHP-Update ein, prüfen die Erreichbarkeit der Oberfläche, räumen offene Regeln auf und richten einen sicheren VPN-Zugang für die Verwaltung ein. Auch bei älteren Installationen, die zuerst ein Upgrade brauchen.

Jetzt Unterstützung anfragen

Schritt 6: Den Fix nachweisen

Nach dem Neustart (Methode 1) oder dem Neustart der Dienste (Methoden 2 und 3) öffnest du wieder eine Shell und prüfst drei Dinge.

Erstens: Läuft die richtige PHP-Version?

php -v | head -1
pkg info -x '^php'

Erwartet wird 8.5.12 auf pfSense Plus 26.07, Plus 26.03.1 und CE 2.9.0 sowie 8.3.36 auf CE 2.8.1. Steht dort eine niedrigere Version, ist das Update nicht angekommen.

Zweitens: Ist noch irgendein Paket veraltet? Der folgende Befehl vergleicht alle installierten Pakete mit dem Repository und zeigt nur die, die nicht dem aktuellen Stand entsprechen:

pkg version -vRL=

Keine Ausgabe heißt: Alles ist auf dem Stand des Repositorys.

Drittens: Wurden die PHP-Prozesse wirklich neu gestartet? Die Startzeit der PHP-FPM-Prozesse muss jünger sein als dein Update:

ps -axo pid,lstart,command | grep '[p]hp-fpm'

Zum Schluss kontrollierst du in der Weboberfläche unter Status, WireGuard, ob deine Tunnel wieder aufgebaut sind, und unter Status, Services, ob alle Dienste laufen. Betreibst du ein Captive Portal, meldest du dich einmal mit einem Testgerät an.

Ältere pfSense-Version: erst das Upgrade

Für Versionen vor CE 2.8.1 und Plus 26.03.1 hat Netgate keine gepatchten Pakete angekündigt. Netgate empfiehlt Nutzern älterer Versionen dringend, so bald wie möglich auf ein aktuelles, unterstütztes Release zu aktualisieren. Die gute Nachricht dabei: Seit die neuen Pakete im Repository liegen, bringt jedes Upgrade, jede Neu- und jede Wiederinstallation eines aktuellen Releases das gepatchte PHP automatisch mit. Der manuelle Schritt 5 entfällt dann.

Das Upgrade selbst startest du in der Weboberfläche unter System, Update oder an der Konsole über den Menüpunkt 13) Update from console. Ein Versionssprung ist allerdings mehr als ein Paketupdate. Lies vorher die Release Notes, sichere die Konfiguration wie in Schritt 3 und plane ein Wartungsfenster ein. Besonders bei großen Sprüngen über mehrere Versionen, bei vielen Zusatzpaketen oder bei einem Hochverfügbarkeitspaar lohnt es sich, das Upgrade zuerst an einer Kopie zu testen.

Ein Upgrade ist auch der Moment, die Hardware zu prüfen. Wer ohnehin über neue Hardware nachdenkt: Welche Mini-PCs sich für pfSense eignen und worauf du bei Netzwerkkarten und Arbeitsspeicher achten solltest, haben wir im Beitrag pfSense auf Mini-PCs zusammengefasst.

Werbung · Amazon-Partnerlink
Mini-PC für pfSense/OPNsense (4x LAN)
Bei Amazon ansehen

Preis & Verfügbarkeit auf Amazon prüfen. Als Amazon-Partner verdienen wir an qualifizierten Käufen, für dich entstehen dadurch keine Mehrkosten.

Sonderfälle

Hochverfügbarkeit mit CARP

Betreibst du zwei pfSense-Systeme als Paar, aktualisiere sie nacheinander, nie gleichzeitig. Unsere Empfehlung: zuerst das sekundäre System, dann prüfen, ob es sauber läuft, und erst danach das primäre. Während das primäre System neu startet, übernimmt das sekundäre, und dein Netz bleibt erreichbar.

pfSense als virtuelle Maschine

Das Update läuft in der VM genauso wie auf echter Hardware. Für die Shell nutzt du am einfachsten die Konsole des Hypervisors, bei Proxmox also die noVNC-Konsole der VM. Sie funktioniert auch dann, wenn die Netzwerkverbindung zur Firewall während des Updates kurz wegbricht. Den Snapshot aus Schritt 3 löschst du erst, wenn alles läuft.

Netgate-Appliances

Auf den Geräten von Netgate läuft pfSense Plus. Die Befehle sind dieselben. Viele Netgate-Appliances haben keinen Monitoranschluss. Dort erreichst du die Konsole über den seriellen Konsolenanschluss, falls SSH nicht zur Verfügung steht. Welcher Anschluss das bei deinem Modell ist, steht in der Netgate-Dokumentation zum Gerät.

Die Oberfläche dauerhaft absichern

Das Update schließt die aktuelle Lücke. Die eigentliche Lehre ist aber eine andere: Eine Verwaltungsoberfläche gehört nicht ins Internet, auch nicht „nur kurz“ oder „mit gutem Passwort“. Netgate empfiehlt für die Zukunft ausdrücklich den Zugriff über sichere Wege wie ein VPN. Konkret heißt das:

  • Keine Regel auf WAN, die die Oberfläche freigibt. Fernzugriff nur über OpenVPN, IPsec oder WireGuard.
  • Die Oberfläche intern auf ein eigenes Verwaltungsnetz oder wenige Admin-Adressen beschränken, wie in unseren Firewall Best Practices beschrieben.
  • Für den Ausfall des VPN einen zweiten Weg vorsehen, zum Beispiel einen Konsolenzugang, damit du dich nie aussperrst.

Für den VPN-Zugang von unterwegs braucht deine Firewall eine Adresse, unter der sie erreichbar ist. Hast du keine feste IP-Adresse, übernimmt das DynDNS. pfSense bringt dafür unter Services, Dynamic DNS einen Client mit, der auch eigene Update-Adressen unterstützt. Unser Dienst N24DNS spricht das verbreitete dyndns2-Protokoll und lässt sich deshalb direkt in diesem Client eintragen, ohne eigene Skripte.

Aus unserem Leistungsangebot
Feste Adresse für deinen VPN-Zugang

Mit N24DNS bekommt deine pfSense einen DynDNS-Namen, der automatisch der wechselnden IP-Adresse folgt. So erreichst du die Firewall zuverlässig per VPN und musst die Weboberfläche nie wieder ins Internet stellen.

N24DNS ansehen

Checkliste zum Abhaken

SchrittKernbefehl oder AktionDauerErledigt
1. Version prüfencat /etc/version, php -vca. 2 Min.☐
2. Erreichbarkeit prüfenWAN-Regeln, Admin Access, Captive Portal, Test von außenca. 10 Min.☐
3. Sichernconfig.xml herunterladen, bei VMs Snapshotca. 2 Min.☐
4. Shell öffnenKonsole oder SSH, nicht über WireGuardca. 2 Min.☐
5. UpdatepfSense-upgrade -c, pkg upgrade, WireGuard neu, Neustartca. 5 bis 10 Min.☐
6. Nachweisphp -v, pkg version -vRL=, Startzeit von php-fpmca. 3 Min.☐
FunktionstestWireGuard-Tunnel, Dienste, Captive Portalca. 5 Min.☐
AbsichernOberfläche nur per VPN und aus dem Verwaltungsnetzca. 15 Min.☐

Hast du neben der Firewall noch Linux-Server, Container oder ein NAS mit PHP im Einsatz, geht es mit der Anleitung aus dem php2shell-Beitrag weiter. Den größeren Rahmen für regelmäßige Kontrollen liefert unsere IT-Security-Checkliste.

Häufige Fragen

Ist meine pfSense von php2shell betroffen?
Laut Netgate ist das Risiko nur dann akut, wenn die Weboberfläche oder das Captive Portal für potenzielle Angreifer erreichbar ist. Im Auslieferungszustand ist die Oberfläche nur aus dem LAN erreichbar und das Captive Portal abgeschaltet. Aktualisieren solltest du trotzdem jede Installation.

Kann ich das Update über die Weboberfläche einspielen?
Nein. Netgate schreibt ausdrücklich, dass sich die PHP-Pakete weder über die pfSense-Weboberfläche noch über die Nexus-Oberfläche aktualisieren lassen. Du brauchst eine Shell, per SSH oder an der Konsole.

Welche PHP-Version muss meine pfSense nach dem Update haben?
pfSense Plus 26.07 und 26.03.1 sowie pfSense CE 2.9.0 bekommen PHP 8.5.12. pfSense CE 2.8.1 bekommt PHP 8.3.36. Prüfen kannst du das in der Shell mit php -v.

Warum wird WireGuard neu installiert?
Das WireGuard-Paket muss nach dem PHP-Update erneut installiert werden, damit es die neue PHP-Version nutzt. Andernfalls startet es laut Netgate unter Umständen nicht. Bist du selbst per WireGuard verbunden, bricht deine Verbindung währenddessen wahrscheinlich ab.

Meine pfSense ist älter als 2.8.1 oder 26.03.1. Was nun?
Für ältere Versionen hat Netgate keine gepatchten Pakete angekündigt. Aktualisiere auf ein aktuelles, unterstütztes Release. Bei einem Upgrade oder einer Neuinstallation sind die gepatchten PHP-Pakete laut Netgate automatisch dabei.

Gilt die Anleitung auch für OPNsense?
Nein. OPNsense ist ein eigenständiges Projekt mit eigenen Paketen und eigenem Updateweg. Die Befehle in diesem Beitrag sind nur für pfSense bestimmt.

Fazit

Netgate hat schnell reagiert, und das Update ist in wenigen Minuten erledigt. Die drei Stolperfallen sind schnell aufgezählt: Das Update gibt es nur in der Shell, die WireGuard-Verbindung reißt dabei ab, und ältere Versionen bekommen keinen Fix. Wer vorher sichert, über die Konsole oder das LAN arbeitet und hinterher mit php -v nachprüft, ist auf der sicheren Seite. Und wer bei der Gelegenheit feststellt, dass die Oberfläche aus dem Internet erreichbar war, hat neben dem Update gleich die wichtigere Aufgabe gefunden.

Quellen

  1. Netgate: „Critical PHP Security Update“, Blogbeitrag vom 21. Oktober 2026
  2. PHP Group: Sicherheitsmeldung zu CVE-2026-109618 und CVE-2026-109619 im php.net-Archiv, 21. Oktober 2026
  3. Netgate Documentation: Remote Firewall Administration
  4. K&C NetFox: „php2shell: Kritische PHP-Lücken CVE-2026-109618 und CVE-2026-109619 Schritt für Schritt schließen“, 21. Oktober 2026

Fragen zu diesem Thema?

Nutze den KI-Assistenten unten rechts oder vereinbare ein Gespräch.

Termin vereinbaren

Weitere Artikel

php2shell: Kritische PHP-Lücken CVE-2026-109618 und CVE-2026-109619 Schritt für Schritt schließen
IT-Security
php2shell: Kritische PHP-Lücken CVE-2026-109618 und CVE-2026-109619 Schritt für Schritt schließen

Zwei kritische Lücken im PHP-Interpreter erlauben Codeausführung ohne Anmeldung, auch bei aktuellem WordPress oder Nextcloud. So findest du betroffene Systeme, spielst das Update sicher ein, weist den Fix nach und suchst nach Einbruchsspuren.

2026-10-2116 Min. Lesezeit
Oktober 2026: Zwei Windows-Fristen, die jeder Admin im Kalender haben muss
IT-Security
Oktober 2026: Zwei Windows-Fristen, die jeder Admin im Kalender haben muss

Am 13. Oktober endet das erste ESU-Jahr, am 19. Oktober läuft das Windows Production PCA 2011 ab. Was das konkret bedeutet, wie du deine Flotte prüfst und wann Refurbished günstiger ist als die Verlängerung.

2026-09-1812 Min. Lesezeit
KI-Agent als Angriffswerkzeug: Was kleine Firmen aus der ersten AEPD-Meldung lernen sollten
IT-Security
KI-Agent als Angriffswerkzeug: Was kleine Firmen aus der ersten AEPD-Meldung lernen sollten

Spaniens Datenschutzaufsicht hat die erste Datenschutzverletzung gemeldet bekommen, bei der ein KI-Agent als Werkzeug diente. Die Techniken sind alt, neu ist das Tempo. Eine nüchterne Einordnung und eine Härtungsliste für 5 bis 50 Arbeitsplätze.

2026-09-1813 Min. Lesezeit