PHP2Shell: Contao-Websites mit alter PHP-Version jetzt vom Netz nehmen
von Dennis Erdmann
Das Wichtigste zuerst: Läuft deine Contao-Website auf PHP 8.1 oder älter, nimm sie zunächst vom Netz. Wie das mit ein paar Zeilen in der .htaccess geht, zeigen wir weiter unten. Danach kümmern wir uns gern um das Update.
PHP2Shell: Was ist passiert?
Am 21. Oktober 2026 hat das PHP-Team Notfall-Updates für zwei kritische Sicherheitslücken veröffentlicht: CVE-2026-109618 und CVE-2026-109619, in Anlehnung an Log4Shell auch „PHP2Shell“ genannt. Beide erreichen 9,2 von 10 Punkten auf der CVSS-Skala.
Die Lücken stecken nicht in Contao, sondern in PHP selbst. Eine präparierte Anfrage kann reichen, um Schadcode auf dem Server auszuführen – ohne Login und bevor Contao überhaupt startet.
Die Details sind vor dem geplanten Termin durchgesickert. Cloudflare hat noch vor Erscheinen der Patches erste Angriffsversuche registriert, Fachleute rechnen mit automatisierten Massenscans. Auch das BSI warnt.
Patches gibt es nur für PHP 8.2 bis 8.5
Geschlossen sind die Lücken in PHP 8.2.35, 8.3.36, 8.4.27 und 8.5.12. PHP 8.1 und älter bekommen vom PHP-Team keine Updates mehr. Für PHP 7.4, 8.0 und 8.1 gibt es nur Korrekturen im Quellcode. Einspielen kann die nur, wer PHP selbst kompiliert – also allenfalls dein Hoster. Und laut der Sicherheitsfirma Sansec steckt der Fehler schon seit PHP 5.4 im Code. Damit sind auch alle PHP-Versionen betroffen, auf denen Contao 3.5 und 4 laufen.
Welche PHP-Version deine Website nutzt, siehst du im Kundenmenü deines Hosters. Danach richtet sich, was jetzt zu tun ist:
| PHP-Version | Offizieller Patch | Was jetzt zu tun ist |
|---|---|---|
| 8.2 bis 8.5 | ja | Dein Hoster spielt das Update in der Regel selbst ein. Frag im Zweifel nach. |
| 7.4 bis 8.1 | nein | Website vom Netz nehmen, bis dein Hoster einen Patch bestätigt oder das Update erledigt ist. |
| 7.3 und älter | nein | Website vom Netz nehmen, bis das Update erledigt ist. |
Warum nicht einfach die PHP-Version umstellen?
Im Kundenmenü ist eine neue PHP-Version schnell eingestellt. Bei älteren Contao-Installationen geht das allerdings selten gut:
- Contao 3.5 und 4.4 sind nicht für PHP 8 freigegeben.
- Contao 4.9 und 4.13 lassen PHP 8 grundsätzlich zu. Ob deine Installation auch mit PHP 8.2 oder neuer läuft, hängt von den Erweiterungen ab – das muss man testen. Sicherheitsupdates für Contao selbst gibt es für beide Versionen ohnehin nicht mehr.
- Contao 5 läuft ab PHP 8.1, Contao 5.7 erst ab PHP 8.3. Hier kommst du meist ohne Contao-Update an eine gepatchte PHP-Version.
Wer ungetestet umschaltet, riskiert eine weiße Seite oder einen Fehler 500.
Der Wartungsmodus von Contao hilft hier nicht
Naheliegend wäre der Wartungsmodus von Contao, über den Contao Manager oder im Startpunkt. Nur: Den wertet Contao in PHP aus. Und bis dahin hat PHP die Anfrage längst verarbeitet.
Die Sperre muss also früher greifen, beim Webserver. Genau dafür gibt es die .htaccess.
Sofortmaßnahme: Contao-Website per .htaccess vom Netz nehmen
Öffne die .htaccess in dem Ordner, auf den deine Domain zeigt. Bei Contao 4 und 5 ist das in der Regel web/ oder public/, bei Contao 3.5 das Hauptverzeichnis. Gibt es dort keine .htaccess, legst du eine an. Füge ganz oben diese Zeilen ein:
# Notfall-Sperre wegen PHP2Shell – nach dem Update wieder entfernen
ErrorDocument 503 "Wegen Wartungsarbeiten offline. Wir sind bald wieder da."
RewriteEngine On
RewriteRule ^ - [R=503,L]
Ab sofort beantwortet der Webserver jede Anfrage mit dem Status 503 („vorübergehend nicht verfügbar“) und dem kurzen Hinweis. PHP bekommt die Anfrage gar nicht erst zu sehen. Am Status 503 erkennen auch Suchmaschinen, dass die Pause nur vorübergehend ist.
Ob die Sperre greift, prüfst du in einem privaten Browserfenster: Startseite, eine Unterseite, /contao – überall sollte nur noch der Hinweis stehen. Nach dem Update entfernst du die vier Zeilen wieder.
Zwei Ergänzungen:
- Passwortschutz statt Komplettsperre: Viele Hoster bieten im Kundenmenü einen Verzeichnisschutz an. Auch der greift, bevor PHP die Anfrage sieht. Dann kommst nur noch du mit Passwort auf die Website.
- Nicht jeder Server liest die .htaccess: Sie funktioniert auf Apache-Webservern, wie sie bei Shared-Hosting-Paketen üblich sind. Läuft deine Website auf nginx, wende dich an deinen Hoster. Auf einem eigenen Server stoppst du PHP-FPM und lieferst eine statische Seite aus.
Dauerhaft hilft nur das Update
Die Sperre verschafft dir Zeit. Mehr nicht. Sicher ist deine Website erst wieder mit einer PHP-Version, die noch Sicherheitsupdates bekommt – und dafür braucht es bei älteren Installationen fast immer ein Contao-Update. Unsere Empfehlung: Contao 5.7 LTS mit PHP 8.4 oder neuer. PHP 8.2 bekommt nur noch bis zum 31. Dezember 2026 Sicherheitsupdates.
Dabei helfen wir dir gern. Schick uns über unser Anfrageformular deine Contao-Version und die Liste deiner Erweiterungen. Wir melden uns und planen das Update mit dir. Welche Erweiterungen mit Contao 5.7 laufen, kannst du vorab mit dem Contao Update Check prüfen.
Du betreust als Agentur mehrere Contao-Websites? Dann geh heute deine Liste durch und prüf bei jeder Website die PHP-Version. Argumente für das Gespräch mit deinen Kund:innen findest du in unserem Artikel Update-Notwendigkeit gegenüber Kund:innen begründen.
Quellen:
- Sicherheitsmeldung des PHP-Teams (englisch)
- Cybersicherheitswarnung des BSI
- Analyse von Sansec (englisch)
Stand: 21. Oktober 2026
Kommentare
Einen Kommentar schreiben