PHP-Sicherheitslücke 2026: So prüfst und patchst du gefährdete Webdienste

Nein, nicht „das halbe Internet“ ist nachweislich betroffen. Doch ungepatchte PHP-Webdienste können durch zwei kritische Schwachstellen ohne vorherige Anmeldung gefährdet sein. Prüfe daher zuerst die tatsächliche Web-Laufzeit statt nur PHP in der Shell, installiere den freigegebenen Sicherheitsfix und starte die betroffenen Worker kontrolliert neu. Besonders wichtig sind öffentlich erreichbare Dienste, mod_php sowie Container und Produkte mit eingebettetem PHP.

Die Alarmmeldung richtig einordnen

Die Aussage, eine PHP-Sicherheitslücke könne „das halbe Internet“ betreffen, ist ein zugespitzter Aufhänger, aber keine belegte Größenordnung. Es gibt keinen Nachweis, dass die Hälfte aller Internetdienste verwundbar oder bereits kompromittiert ist. Das tatsächliche Risiko ist dennoch erheblich, weil PHP als Laufzeitumgebung in vielen Websites, Shops, APIs und Verwaltungsoberflächen eingesetzt wird.

Entscheidend ist nicht, ob eine Website PHP nutzt, sondern welche PHP-Version ihre Webanfragen verarbeitet. Die Sicherheitsupdates vom 21. Oktober 2026 betreffen grundsätzlich ungepatchte Installationen der unterstützten Zweige, sofern sie Anfragen über einen Webdienst bedienen. Ein lokales PHP für Entwicklungsaufgaben ist daher anders zu bewerten als ein von außen erreichbares Kundenportal.

Die Internet-Exponierung bestimmt die Dringlichkeit wesentlich. Ein öffentlich erreichbarer Shop mit Formularen und Uploads bietet mehr mögliche Berührungspunkte als ein abgeschotteter interner Dienst. Auch ein interner Dienst ist aber nicht automatisch sicher: VPN-Zugänge, kompromittierte Konten oder andere Systeme im Netzwerk können ihn erreichbar machen. Reichweite allein ersetzt deshalb keine technische Risikoprüfung.

Ebenso wichtig sind Betriebsart und Patchstand. PHP kann etwa über PHP-FPM, als Apache-Modul, per php-cgi oder eingebettet in ein Produkt laufen. Mehrere Domains auf demselben Server können dabei unterschiedliche Versionen und Aktualisierungswege haben. Eine pauschale Entwarnung für alle PHP-Websites wäre ebenso falsch wie die Annahme, jede Installation sei unmittelbar angreifbar.

Was die PHP-Schwachstellen technisch ermöglichen

Eine Remote Code Execution (RCE) bedeutet, dass ein Angreifer unter bestimmten Bedingungen Code auf einem entfernten System ausführen kann. Bei diesen PHP-Schwachstellen ist laut Sicherheitsmeldung keine vorherige Anmeldung erforderlich. Ausgeführt würde der Code zunächst mit den Rechten des Webprozesses, nicht automatisch mit uneingeschränkten Administratorrechten. Die möglichen Folgen hängen daher stark von Dateirechten, Zugangsdaten und der Servertrennung ab.

CVE-2026-109618 betrifft Fehlerpfade bei Speicherknappheit. Bricht PHP eine Anfrage wegen eines Out-of-Memory-Zustands ab, können interne Datenstrukturen unvollständig bleiben. Werden solche Zustände beim Aufräumen der Anfrage weiterverwendet, kann Speicherbeschädigung entstehen. Die offizielle Beschreibung nennt insbesondere Multipart-Anfragen, Dateiuploads und den Speicherverbrauch beim Parsen verschachtelter Eingaben als relevante technische Kontexte.

CVE-2026-109619 betrifft dagegen an eine Anfrage gebundenen internen Zustand, dessen Speicher bereits freigegeben wurde. Verarbeitet ein wiederverwendeter Worker danach eine weitere Anfrage, kann PHP auf diesen veralteten Zustand zugreifen, bevor die normale Initialisierung greift. Die Sicherheitsmeldung verweist dabei unter anderem auf den Upload-Fortschritt von Sessions und Fehlerpfade. Das beschreibt die Fehlerklasse, nicht eine Anleitung zur Ausnutzung.

  • Betroffen sein können Webanfragen über PHP-FPM, Apache mit mod_php, php-cgi, FrankenPHP und LiteSpeed.
  • Die Fehler liegen in der PHP-Laufzeit, nicht primär in WordPress, Joomla, Shopware, Themes oder einzelnen Plugins.
  • CMS und Frameworks beeinflussen erreichbare Funktionen wie Uploads, ersetzen aber kein Update des Interpreters.

Warum nicht jede Installation gleich gefährdet ist

Ob ein Dienst praktisch gefährdet ist, ergibt sich aus mehreren Faktoren. Vorrang haben eine ungepatchte PHP-Web-Laufzeit und ein erreichbarer Webdienst. Danach zählen die Betriebsart, wiederverwendete Prozesse, Funktionen für Uploads oder komplexe Formulare sowie die Rechte des Webprozess-Kontos. Ein Dienst mit weitreichendem Schreibzugriff auf Webdateien oder Zugang zu weiteren Diensten kann schwerere Folgen haben als ein strikt isoliertes Projekt.

Bei Apache mit mod_php hebt das PHP-Projekt den Risikofokus besonders hervor: Ein dokumentierter Angriff kann bereits vor der Ausführung des eigentlichen Anwendungscodes ausgelöst werden. Ein sauber gepflegtes CMS schützt dann nicht vor der Schwachstelle in der Laufzeit. Das bedeutet nicht, dass PHP-FPM, php-cgi, FrankenPHP oder LiteSpeed als ungefährlich gelten; sie müssen bei einem ungepatchten Stand ebenfalls priorisiert geprüft werden.

Besondere Aufmerksamkeit brauchen außerdem Produkte mit eingebettetem PHP. Dazu können Container-Images, Appliances, NAS-Verwaltungen oder Netzwerkprodukte gehören, deren Oberfläche PHP intern verwendet. Dort zeigt ein Befehl auf dem Host oft nicht die tatsächlich eingesetzte Laufzeit. Das Update des Betriebssystems behebt auch nicht automatisch eine verwundbare PHP-Komponente in einem Image oder Herstellerprodukt.

Eine Firewall, Web Application Firewall oder restriktive Upload-Limits können einzelne Anfragen erschweren und die Angriffsfläche begrenzen. Sie sind jedoch kein Ersatz für den Fix, weil sie nicht die fehlerhafte Speicher- und Zustandsverwaltung im Interpreter korrigieren. Auch ein fehlerfreies CMS bleibt auf eine sichere Laufzeit angewiesen. Maßgeblich ist deshalb, den Patchstand des tatsächlich Webanfragen verarbeitenden PHP zu prüfen und zu aktualisieren.

Sichere Patchstände und Supportstatus vergleichen

Für die beiden Sicherheitslücken zählt zunächst der Patchstand innerhalb des eingesetzten PHP-Zweigs. Das PHP-Projekt nennt für die unterstützten Reihen konkrete korrigierte Releases. Frühere Patchstände derselben Reihe gelten als betroffen; ein Upgrade auf die angegebene oder eine neuere Version dieses Zweigs ist die vorgesehene vollständige Abhilfe.

PHP-Zweige: Patchstände und Supportlage am 22. Oktober 2026
PHP-ZweigBetroffen bis einschließlichSichere Version abSupportstatus am 22. Oktober 2026Empfohlene Maßnahme
PHP 8.28.2.348.2.35Nur Sicherheitsupdates bis 31. Dezember 2026Kurzfristig auf mindestens 8.2.35 aktualisieren und Migration planen.
PHP 8.38.3.358.3.36Nur Sicherheitsupdates bis 31. Dezember 2027Auf mindestens 8.3.36 aktualisieren.
PHP 8.48.4.268.4.27Aktiver Support bis 31. Dezember 2026Auf mindestens 8.4.27 aktualisieren.
PHP 8.58.5.118.5.12Aktiver Support bis 31. Dezember 2027Auf mindestens 8.5.12 aktualisieren.
PHP 8.1 und älterKein reguläres aktuelles Upstream-ReleaseKein allgemein verfügbares reguläres Fix-ReleaseNicht regulär vom PHP-Projekt unterstütztAnbieter-Backport prüfen oder auf einen unterstützten Zweig migrieren.

Ein Patch-Update bleibt in derselben Entwicklungsreihe, etwa von 8.3.35 auf 8.3.36. Es soll den Sicherheitsfix bereitstellen und hat einen engeren Kompatibilitätsrahmen als ein Wechsel von 8.2 auf 8.4. Letzterer ist eine Migration: Abhängigkeiten, Erweiterungen, Anwendungscode und gegebenenfalls das Deployment müssen dafür separat geprüft werden.

PHP 8.2 ist für die akute Behebung weiterhin nutzbar, sofern mindestens Version 8.2.35 läuft. Der Zweig erreicht jedoch am 31. Dezember 2026 sein Supportende. Deshalb sollte ein Betrieb nicht bei diesem Sofortschritt stehen bleiben: Plane die Umstellung auf einen länger unterstützten Zweig, nachdem die Anwendung in einer geeigneten Umgebung auf Kompatibilität geprüft wurde.

Bei PHP 8.1 und älter ist besondere Vorsicht nötig. Das PHP-Projekt stellt dafür kein reguläres aktuelles Release bereit; minimale Quellcode-Backports sind nicht mit einem allgemein verfügbaren, gepflegten Paket gleichzusetzen. Ein vom Betriebssystemanbieter dokumentierter Sicherheits-Backport kann angemessen sein, erfordert aber einen Nachweis im Security Advisory oder Paket-Changelog. Fehlt er, ist eine Migration statt einer bloßen Versionskosmetik nötig.

Die tatsächliche Web-Laufzeit prüfen

Die Versionsprüfung beginnt mit einer Bestandsaufnahme, darf aber nicht bei der Shell enden. Auf einem selbst verwalteten Server zeigen die folgenden Befehle die Version des dort aufgerufenen PHP-Befehls und die von diesem Aufruf gefundenen Konfigurationsdateien. Sie verändern weder Pakete noch Konfiguration und eignen sich daher als erster, risikoarmer Prüfschritt.

Terminal
php -v
php --ini

Die Ausgabe beschreibt nur die über diesen Shell-Befehl aufgerufene CLI-Laufzeit. Eine Website kann dagegen über PHP-FPM, Apache mit mod_php, php-cgi oder einen Container bedient werden. Diese Web-Laufzeit kann eine andere PHP-Version und andere Konfigurationsdateien nutzen als der Befehl php -v auf dem Host. Für die Sicherheitsbewertung ist der Prozess maßgeblich, der reale HTTP-Anfragen verarbeitet.

Technikraum mit Serverhardware als Symbol für die Prüfung von PHP-Webdiensten.
KI-generiertes Symbolbild: Die PHP-Version muss am Dienst geprüft werden, der Webanfragen verarbeitet.

Im Managed Hosting prüfst du deshalb im Kundenpanel die pro Projekt oder Domain ausgewählte PHP-Version und fragst bei Bedarf den Patchstand des bereitgestellten Dienstes ab. Bei mehreren Domains ist jede Zuweisung einzeln zu kontrollieren: Eine Hauptdomain kann bereits den gepatchten Zweig verwenden, während ein Shop, eine Staging-Instanz oder eine Subdomain noch einen älteren Interpreter nutzt.

Auf Servern mit PHP-FPM gehören Service-Konfiguration, Paketbestand und Deployment-Unterlagen zusammen. In Container-Umgebungen prüfst du zusätzlich das tatsächlich ausgerollte Image und nicht nur ein lokales Build-Manifest. Entscheidend ist, welche Revision im laufenden Pod oder Container Webanfragen annimmt; ein aktualisiertes Basisimage schützt keine bereits laufende ältere Instanz.

Updatewege nach Betriebsart planen

Der geeignete Updateweg richtet sich danach, wer den Interpreter ausliefert und wo er betrieben wird. Erst wenn dieser Verantwortungsbereich klar ist, lässt sich zuverlässig entscheiden, ob ein Panel-Wechsel, ein Paketupdate, ein neues Image oder ein Herstellerupdate erforderlich ist. Die folgende Einordnung trennt diese Fälle, ohne die Betriebsarten hinsichtlich ihres Risikos gleichzusetzen.

Versionsprüfung und Aktualisierung nach PHP-Betriebsart
BetriebsartWo die tatsächliche Version prüfen?Wer aktualisiert?Typische Besonderheit
Shared HostingKundenpanel je Domain oder Projekt; Auskunft des HostersHosting-Anbieter oder Kunde über freigegebene AuswahlPHP-Zuweisungen können zwischen Domains abweichen.
PHP-FPM auf LinuxFPM-Pool, installierte Pakete, Dienst- und Deployment-KonfigurationServeradministration oder DistributionPaketversion kann einen dokumentierten Sicherheits-Backport enthalten.
Apache mit mod_phpApache-Modulkonfiguration und installierte PaketeServeradministration oder DistributionVom PHP-Projekt mit besonderem Risikofokus beschrieben.
ContainerLaufendes Image, Image-Tag oder Digest sowie Container-LaufzeitTeam für Build und DeploymentHost-Updates ändern das eingebettete PHP im Image nicht automatisch.
Eingebettetes PHP im ProduktHerstellerdokumentation, Produktversion und Security AdvisoryProdukthersteller oder ProduktadministrationPHP kann ohne separat sichtbare Installation Teil einer Appliance sein.

Bei Shared Hosting sollte der Anbieter den sicheren Patchstand für die gewählte PHP-Reihe bereitstellen; der Betreiber prüft anschließend die Anwendung. Bei PHP-FPM oder mod_php aktualisiert die Administration in der Regel die Pakete und startet danach den tatsächlich zuständigen Dienst kontrolliert neu. Ein reiner Neustart ohne eingespielten Fix ersetzt das Update nicht.

Linux-Distributionen liefern Sicherheitskorrekturen häufig als Backport. Dann kann die sichtbare Paketversionsnummer von den Releases auf php.net abweichen, obwohl der Fix enthalten ist. Vergleiche daher nicht nur Zeichenketten wie „8.4.26“, sondern lies die Sicherheitsmitteilung und das Changelog des Distributors. Das PHP-Projekt weist darauf hin, dass Distributionen und LTS-Anbieter Patches erhalten können.

Container verlangen einen eigenen Ablauf: ein korrigiertes Image bauen oder vom Anbieter beziehen, dieses ausrollen und alte Instanzen ersetzen. Bei NAS-Oberflächen, Netzwerkgeräten oder fertigen Webanwendungen liegt die Korrektur dagegen beim Herstellerprodukt. Ein Patch des Hostbetriebssystems erreicht dort nicht zwangsläufig den eingebetteten Interpreter; Inventarisierung und Herstellerhinweise bleiben deshalb unverzichtbar.

Sofortmaßnahmen ohne falsche Sicherheit

Am Patch-Tag verschaffst du dir zuerst ein belastbares Inventar: Domains, APIs, Verwaltungsoberflächen, Container und Produkte mit möglichem eingebettetem PHP. Notiere je Dienst die Web-Betriebsart, den verantwortlichen Updateweg und die tatsächlich verwendete PHP-Laufzeit. Danach erhält jeder öffentlich erreichbare oder geschäftskritische Dienst Vorrang, nicht lediglich der Server mit der auffälligsten Versionsnummer.

Spiele anschließend das vom Hoster, Linux-Distributor, Image- oder Produkthersteller freigegebene Sicherheitsupdate ein. Für die unterstützten PHP-Zweige ist das Update auf den korrigierten Patchstand die vollständige Abhilfe; eine WAF, Upload-Regeln oder ein Webserver-Neustart ersetzen es nicht. Plane den Vorgang so, dass Paket-, Image- oder Herstellerupdate nachvollziehbar dokumentiert und bei Problemen zurückverfolgt werden kann.

Nach der Aktualisierung müssen alle alten Worker beendet und durch Prozesse ersetzt werden, die nachweislich die gepatchte Laufzeit geladen haben. Verwende einen Reload nur, wenn die konkrete Dienstverwaltung diesen vollständigen Austausch sicherstellt; andernfalls ist ein kontrollierter Neustart erforderlich. Prüfe anschließend Prozessstartzeiten, Dienststatus oder die intern ermittelte Web-Laufzeit, statt den Austausch lediglich anzunehmen. Bei Containern rollst du das korrigierte Image aus und entfernst sämtliche alten Instanzen.

Kontrolliere danach zentrale Anwendungswege wie Anmeldung, Formulare, Uploads, Checkout und APIs. Die Tests zeigen, ob Anwendung und Erweiterungen mit dem aktualisierten Patchstand funktionieren; sie belegen allein jedoch weder den vollständigen Worker-Austausch noch die Abwesenheit einer früheren Kompromittierung. Diese Punkte müssen über Betriebs- und Sicherheitsprüfungen getrennt bewertet werden.

Falls ein Patch kurzfristig nicht möglich ist, können einzelne Einstellungen bekannte Angriffspfade begrenzen, aber keine vollständige Sicherheit herstellen. Das Abschalten des Upload-Fortschritts muss vor dem Parsen einer Anfrage wirksam sein. Prüfe vorab, ob Anwendungen oder Oberflächen diese Fortschrittsanzeige benötigen, und starte danach jeden zuständigen PHP-Worker neu. Verifiziere anschließend, dass kein alter Prozess mit der vorherigen Einstellung weiterarbeitet.

Code
session.upload_progress.enabled = 0

Konservative Grenzen für POST-Daten und weitere in der Sicherheitsmeldung genannte Optionen können die Angriffsfläche ebenfalls nur teilweise reduzieren. Spät gelesene .user.ini-Dateien oder ein ini_set() innerhalb der Anwendung reichen für diese Einstellung nicht aus. Behandle solche Maßnahmen als befristete Risikoreduktion und halte am Sicherheitsupdate als Ziel fest.

Davon zu unterscheiden ist die reguläre Verwaltung gespeicherter Sitzungen. Der Beitrag zur PHP Session Garbage Collection erklärt, wie Bereinigung, Dateizugriffe und Worker im normalen Betrieb zusammenspielen. Diese Betriebsoptimierung behebt die hier behandelten Schwachstellen jedoch nicht und ersetzt weder den korrigierten PHP-Patchstand noch den anschließenden Austausch der laufenden Prozesse.

Nach dem Patch Betrieb und Auffälligkeiten prüfen

Ein erfolgreich abgeschlossenes Paketupdate belegt zunächst nur, dass Dateien oder Pakete installiert wurden. Es bestätigt weder, dass der Webprozess die neue Laufzeit geladen hat, noch dass die Anwendung damit fehlerfrei arbeitet. Prüfe deshalb nach dem Neustart die für den Dienst maßgebliche Web-Laufzeit und dokumentiere Zeitpunkt, Version, neu gestarteten Dienst sowie das Ergebnis der Funktionskontrolle.

Die Funktionsprüfung sollte reale Kernabläufe abdecken: wichtige öffentliche Seiten, Anmeldung und Abmeldung, Formularversand, Datei-Upload, Checkout oder Buchung sowie API-Endpunkte und Hintergrundaufgaben. Teste nur Vorgänge, für die du berechtigt bist, und nutze bei produktiven Shops möglichst dafür vorgesehene Testdaten. Kontrolliere parallel Webserver-, PHP- und Anwendungsprotokolle auf neue Fehler, wiederholte Abstürze oder unerwartete Statuscodes.

Ein Neustart ist notwendig, um langlebige Prozesse und Worker mit aktualisiertem Code zu laden, erzeugt aber selbst keinen Fix. Ohne eingespieltes Update bleibt die Schwachstelle bestehen. Bei hoher Auslastung sollte das Wartungsfenster so gewählt werden, dass Anfragen geordnet abfließen können und die Auswirkungen eines Worker-Neustarts beobachtbar bleiben.

Wie stark ein kontrollierter Neustart den Durchsatz beeinflusst, hängt von Zahl und Auslastung der PHP-Prozesse ab. Für die Planung hilft es, Warteschlangen, laufende Jobs und kritische Transaktionen zu berücksichtigen, statt Prozesse unkoordiniert zu beenden. Der Leitfaden PHP Workers verstehen erklärt die Rolle dieser Prozesse bei parallelen dynamischen Anfragen.

Treten nach dem Patch Auffälligkeiten auf, unterscheide zwischen Kompatibilitätsfehlern der Anwendung und einem unvollständigen Rollout. Vergleiche Konfiguration, aktivierte Erweiterungen und die Web-Laufzeit mit dem Stand vor der Wartung. Ein Rollback darf nicht dazu führen, dass ein öffentlich erreichbarer Dienst dauerhaft auf dem verwundbaren Stand verbleibt; kläre dann zügig einen kompatiblen, gepatchten Updatepfad.

Alte und versteckte PHP-Installationen priorisieren

Besondere Aufmerksamkeit benötigen Systeme, auf denen PHP nicht als bewusst installierte Laufzeit sichtbar ist: Docker-Images, virtuelle Appliances, NAS- und Netzwerkoberflächen sowie fertige Softwareprodukte. Ein Update des Hosts aktualisiert weder automatisch ein Container-Image noch die intern mitgelieferte Laufzeit eines Herstellerprodukts. Frage deshalb Hersteller gezielt nach ihrer Bewertung und nach einem Sicherheitsupdate für das konkrete Produkt.

Administrator prüft Herstellerinformationen zu einer Netzwerk-Appliance mit eingebettetem PHP.
KI-generiertes Symbolbild: Bei Appliances sind Herstellerbewertung und produktspezifischer Updateweg zu prüfen; dargestellt ist kein allgemeiner Updatevorgang.

Bei alten Zweigen sind drei Fälle sauber zu trennen. Ein regulär unterstützter PHP-Release erhält die vom PHP-Projekt veröffentlichten Sicherheitsupdates. Ein Distributions- oder Anbieter-Backport kann den Fix trotz abweichender sichtbarer Versionsnummer enthalten, muss aber durch die Sicherheitsmeldung oder das Changelog dieses Anbieters belegt sein. Selbst gepflegter Quellcode verlangt dagegen eigene Build-, Test- und Betriebsverantwortung; er ist kein gleichwertiger Ersatz für einen regulären Updatekanal.

PHP 8.1 und ältere Zweige erhalten keine regulären Upstream-Releases mehr. Für PHP 8.2 steht zwar ein korrigierter Patchstand bereit, der Zweig erreicht jedoch Ende 2026 sein Supportende. Nutze einen verfügbaren Fix für die akute Lage, plane bei alten oder auslaufenden Versionen aber zusätzlich eine getestete Migration auf einen länger unterstützten Zweig.

  1. Öffentlich erreichbare Dienste mit ungepatchter PHP-Laufzeit zuerst aktualisieren, besonders wenn Uploads oder Verwaltungsfunktionen erreichbar sind.
  2. Apache mit mod_php und geschäftskritische Shops, APIs oder Kundenportale unmittelbar danach behandeln; die offizielle Sicherheitsmeldung hebt für mod_php einen besonders kritischen Risikofokus hervor.
  3. Container, Appliances und Drittprodukte anhand von Images, Inventar und Herstellerstatus erfassen; fehlende sichtbare PHP-Pakete sind kein Entwarnungssignal.
  4. Nicht unterstützte oder nicht zeitnah patchbare Dienste isolieren und Zugriffe einschränken, parallel aber verbindlich Ersatz, Upgrade oder Migration planen.

Netzsegmentierung, VPN-Pflicht oder restriktive Zugriffsregeln können bei nicht sofort patchbaren Verwaltungsoberflächen Zeit gewinnen. Sie sind jedoch nur Übergangsmaßnahmen, weil interne Nutzerkonten, kompromittierte Geräte und falsch konfigurierte Freigaben weiterhin Angriffswege schaffen können. Wird für ein Produkt kein Fix angeboten oder ist der PHP-Zweig dauerhaft außerhalb des Supports, ist Ersatz oder Migration die belastbare Entscheidung.

Quellen und fachlicher Stand

Recherche-Stand:

Recherche-Stand: 22. Oktober 2026. Patchstände und Supportangaben beziehen sich auf die bereitgestellten PHP- und CERT-EU-Quellen; bei Distributionspaketen sind dokumentierte Sicherheits-Backports gesondert zu prüfen.

https://www.php.net/archive/2026.php

https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w

https://cert.europa.eu/publications/security-advisories/2026-018/

https://www.php.net/supported-versions.php

Aktuelle Artikel