# Craft CMS Sicherheit nach PHP2Shell: Agentur-Websites absichern

> Craft CMS nach PHP2Shell absichern: PHP im Systembericht prüfen, .env und Security-Key schützen, devMode abschalten und Project Config abgleichen.

Quelle: https://phpsos.de/plattformen/craft-cms/  
Stand: 25.10.2026  
Anbieter: PHP SOS, PHP-Notfallhilfe und Server-Sicherheit. Soforthilfe per WhatsApp: https://wa.me/491736494914?text=Hallo%20PHP%20SOS%2C%20wir%20brauchen%20Hilfe%20mit%20unserem%20PHP-Server.%20Firma%3A%20%E2%80%A6%20Website%3A%20%E2%80%A6

**Kurz gesagt:** Craft CMS Sicherheit hängt nach PHP2Shell am PHP des Servers, nicht an Craft. Gerade Agenturen mit vielen Craft-Websites sollten jetzt jeden Server einzeln prüfen. Nach Patch und Neustart gehören `.env`, Security-Key, `devMode`, die Dokumentwurzel und der Abgleich der Project Config auf den Prüfstand.

## Was PHP2Shell für Craft-Websites bedeutet

Craft CMS ist bei Agenturen beliebt, weil es flexible Inhaltsmodelle und saubere Templates bietet. Entsprechend betreuen viele Agenturen Dutzende Craft-Websites auf unterschiedlichen Servern und Hosting-Paketen. Die PHP-Lücken CVE-2026-109618 und CVE-2026-109619 erlauben laut PHP-Team Schadcode aus der Ferne ohne Anmeldung, unabhängig von der Craft-Version.

Für Agenturen ist die wichtigste Frage deshalb organisatorisch: Welche Website läuft wo, mit welchem PHP, und wer ist für das Update zuständig? Eine Liste aller Installationen mit Hoster, PHP-Stand und Ansprechpartner ist der erste Schritt. Wie wir Agenturen dabei unterstützen, beschreibt [Sicherheitspartner für Agenturen](https://phpsos.de/branchen/agenturen-white-label/).

## Craft CMS Sicherheit: PHP-Version prüfen

Im Control Panel zeigt **Werkzeuge > Systembericht** die PHP-Version, die Datenbank und die installierten Plugins. Das ist die Version, mit der die Website im Web läuft. Die Craft-Konsole `php craft`, Queue-Verarbeitung und Cronjobs nutzen dagegen das Kommandozeilen-PHP. Beide müssen gepatcht sein.

Behobene Upstream-Versionen sind 8.5.12, 8.4.27, 8.3.36 und 8.2.35. Viele Hoster spielen Korrekturen als Backport ein; die Nummer bleibt dann gleich. Welche Versionen betroffen sind, zeigt [Welche PHP-Versionen sind betroffen?](https://phpsos.de/php2shell/betroffene-php-versionen/). Welche PHP-Versionen Ihre Craft-Version unterstützt, prüfen Sie laut Systemanforderungen in der Dokumentation auf craftcms.com.

Craft verarbeitet Hintergrundaufgaben in einer Warteschlange. Läuft sie als dauerhafter Prozess unter einem Prozessmanager, muss auch dieser nach dem PHP-Update neu gestartet werden.

## Verzeichnisse und Konfiguration in Craft

| Ort | Inhalt | Prüfpunkt |
|---|---|---|
| `.env` | Datenbankzugang, `CRAFT_SECURITY_KEY`, weitere Schlüssel | Werte nach Verdacht erneuern |
| `config/general.php` | `devMode`, `allowAdminChanges`, Pfad zum Control Panel | eingeschobener PHP-Code |
| `config/project/` | Project Config als YAML | Abgleich mit Git |
| `web/` | Dokumentwurzel mit `index.php`, `cpresources/`, oft Uploads | zusätzliche PHP-Dateien |
| `storage/` | Logs, Laufzeitdateien, häufig Datenbank-Backups | nicht über das Web erreichbar |
| `templates/` | Twig-Templates | fremdes JavaScript |
| `modules/`, `vendor/` | eigene Module und Plugins | veränderte Dateien, `composer audit` |

Ein häufig übersehener Punkt ist `storage/backups/`. Craft legt dort Datenbanksicherungen ab, die vollständige Kunden- und Formulardaten enthalten können. Dieser Ordner darf niemals unterhalb der Dokumentwurzel liegen.

Ungefährliche Prüfungen auf der Kommandozeile:

```bash
# Unterschiede zwischen Project Config und Datenbank anzeigen
php craft project-config/diff
# PHP-Dateien in der Dokumentwurzel außer index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
```

> **Wichtig:**
> In Produktion gehört `devMode` auf `false`. Mit eingeschaltetem `devMode` zeigt Craft ausführliche Fehlermeldungen mit Pfaden und Code-Ausschnitten, die Angreifern die Arbeit erleichtern.

## Control Panel, Benutzer und Plugins

Das Control Panel liegt standardmäßig unter `/admin`. Prüfen Sie, welche Benutzer Administratorrechte haben, und entfernen Sie Zugänge ehemaliger Mitarbeiter und Freelancer. Craft unterstützt eine Zwei-Faktor-Anmeldung; nutzen Sie sie für alle Konten mit erhöhten Rechten.

Setzen Sie in Produktion `allowAdminChanges` auf `false`. Dann lassen sich Felder, Bereiche und Plugin-Einstellungen nur über die versionierte Project Config ändern, und jede Abweichung fällt beim Abgleich mit Git auf. Plugins aus dem Plugin Store bringen eigenen PHP-Code mit; prüfen Sie, ob alle noch gepflegt werden und zur angestrebten PHP-Version passen.

```php
// config/general.php, Ausschnitt für die Produktionsumgebung
'devMode' => false,
'allowAdminChanges' => false,
```

## Was ein Craft-Update kann und was nicht

Ein Update von Craft oder einem Plugin schließt Fehler in diesem Code und kann neuere PHP-Versionen ermöglichen. Es patcht nicht PHP, startet weder PHP-FPM noch die Warteschlange neu, erneuert keinen abgeflossenen Security-Key und entfernt keine fremden Dateien aus `web/` oder `storage/`.

Für Agenturen mit vielen Craft-Installationen zählt nach dem Patch vor allem die Wiederholbarkeit. Halten Sie je Website fest, welche PHP-Version im Web und auf der Kommandozeile läuft, wann der Neustart bestätigt wurde und ob die Prüfungen auffällig waren. Diese Übersicht hilft bei Rückfragen von Kunden und bei künftigen Meldungen. Denken Sie auch an öffentlich erreichbare Staging- und Entwicklungsumgebungen. Sie laufen oft mit `devMode`, älteren Ständen und echten Kundendaten und werden bei Updates gern vergessen. Gibt es Zweifel, ob eine Kundenseite betroffen ist, informieren Sie den Kunden sachlich, statt abzuwarten.

## Wie hilft PHP SOS konkret?

- Wir erfassen mit Ihnen alle Craft-Installationen mit Hoster, PHP-Stand und Zuständigkeit.
- Wir lassen Patch und Neustart je Server bestätigen und sichern Logs ab dem 20.10.2026.
- Wir prüfen Dokumentwurzel, `storage`, Konfiguration, Benutzer und den Abgleich der Project Config.
- Auf Wunsch übernehmen wir die laufende Sicherheitsbetreuung Ihrer Kundenseiten im [Security-Wartungsvertrag](https://phpsos.de/leistungen/security-wartungsvertrag/), auch unter Ihrem Namen.


## Häufige Fragen

**Ist Craft CMS von PHP2Shell betroffen?**  
Craft CMS selbst hat keine neue Lücke. Es läuft aber auf PHP, und PHP2Shell steckt in PHP. Jede Craft-Installation auf einem ungepatchten Server ist daher potenziell angreifbar, unabhängig von der Craft-Version.

**Wo zeigt Craft die PHP-Version an?**  
Im Control Panel unter Werkzeuge > Systembericht. Dort stehen PHP-Version, Datenbank und installierte Plugins. Ein eingespielter Backport ist an der Nummer nicht zu erkennen; das bestätigt Ihr Hoster.

**Was ist der Security-Key in Craft und warum erneuern?**  
Der Security-Key aus der Datei .env dient zum Signieren und Verschlüsseln von Daten. Wer ihn kennt, kann unter Umständen Sitzungen oder Formulardaten fälschen. Nach einem Verdacht sollten Sie ihn in Abstimmung mit Ihrer Agentur erneuern.

**Was bringt allowAdminChanges auf false?**  
Damit lassen sich Felder, Bereiche und Plugin-Einstellungen in Produktion nicht mehr über das Control Panel ändern. Änderungen kommen nur noch über die versionierte Project Config, was Manipulationen schwerer und sichtbarer macht.

## Quellen

- [php.net: Sicherheitsmeldungen](https://www.php.net/)
- [Craft CMS](https://craftcms.com/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [Unterstützte PHP-Versionen](https://www.php.net/supported-versions.php)
