# Craft CMS-säkerhet efter PHP2Shell: skydda byråernas webbplatser

> Skydda Craft CMS efter PHP2Shell: kontrollera PHP i systemrapporten, skydda .env och Security Key, stäng av devMode och stäm av Project Config.

Källa: https://phpsos.de/sv/plattformen/craft-cms/  
Aktualitet: 2026-10-25  
Leverantör: PHP SOS, PHP-nödhjälp och serversäkerhet. Omedelbar hjälp via WhatsApp: https://wa.me/491736494914?text=Hej%20PHP%20SOS%2C%20vi%20beh%C3%B6ver%20hj%C3%A4lp%20med%20v%C3%A5r%20PHP-server.%20F%C3%B6retag%3A%20%E2%80%A6%20Webbplats%3A%20%E2%80%A6

**Kort sagt:** Craft CMS-säkerheten hänger efter PHP2Shell på serverns PHP, inte på Craft. Framför allt byråer med många Craft-webbplatser bör nu kontrollera varje server för sig. Efter patch och omstart hör `.env`, Security Key, `devMode`, dokumentroten och avstämningen av Project Config till kontrollen.

## Vad PHP2Shell betyder för Craft-webbplatser

Craft CMS är populärt hos byråer eftersom det erbjuder flexibla innehållsmodeller och rena mallar. Därför sköter många byråer dussintals Craft-webbplatser på olika servrar och hostingpaket. PHP-sårbarheterna CVE-2026-109618 och CVE-2026-109619 gör det enligt PHP-teamet möjligt att köra skadlig kod på distans utan inloggning, oberoende av Craft-versionen.

För byråer är den viktigaste frågan därför organisatorisk: vilken webbplats körs var, med vilket PHP, och vem ansvarar för uppdateringen? En lista över alla installationer med webbhotell, PHP-status och kontaktperson är det första steget. Hur vi stöder byråer med detta beskrivs i [Säkerhetspartner för byråer](https://phpsos.de/sv/branchen/agenturen-white-label/).

## Craft CMS-säkerhet: kontrollera PHP-versionen

I Control Panel visar **Verktyg > Systemrapport** PHP-versionen, databasen och de installerade plugin. Det är den version som webbplatsen körs med på webben. Craft-konsolen `php craft`, köhanteringen och cronjobb använder däremot kommandoradens PHP. Båda måste vara patchade.

Åtgärdade upstream-versioner är 8.5.12, 8.4.27, 8.3.36 och 8.2.35. Många webbhotell levererar rättningar som backport; numret förblir då detsamma. Vilka versioner som berörs visar [Vilka PHP-versioner berörs?](https://phpsos.de/sv/php2shell/betroffene-php-versionen/). Vilka PHP-versioner er Craft-version stöder kontrollerar ni enligt systemkraven i dokumentationen på craftcms.com.

Craft hanterar bakgrundsuppgifter i en kö. Körs den som en ständig process under en processhanterare måste även den startas om efter PHP-uppdateringen.

## Kataloger och konfiguration i Craft

| Plats | Innehåll | Kontrollpunkt |
|---|---|---|
| `.env` | Databasåtkomst, `CRAFT_SECURITY_KEY`, fler nycklar | förnya värden vid misstanke |
| `config/general.php` | `devMode`, `allowAdminChanges`, sökväg till Control Panel | inskjuten PHP-kod |
| `config/project/` | Project Config som YAML | jämför med Git |
| `web/` | Dokumentrot med `index.php`, `cpresources/`, ofta uppladdningar | ytterligare PHP-filer |
| `storage/` | Loggar, körtidsfiler, ofta databassäkerhetskopior | inte nåbara via webben |
| `templates/` | Twig-mallar | främmande JavaScript |
| `modules/`, `vendor/` | egna moduler och plugin | ändrade filer, `composer audit` |

En ofta förbisedd punkt är `storage/backups/`. Craft lägger där databassäkerhetskopior som kan innehålla fullständiga kund- och formulärdata. Den mappen får aldrig ligga under dokumentroten.

Ofarliga kontroller på kommandoraden:

```bash
# Visa skillnader mellan Project Config och databasen
php craft project-config/diff
# PHP-filer i dokumentroten utom index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
```

> **Viktigt:**
> I produktion ska `devMode` vara `false`. Med `devMode` påslaget visar Craft utförliga felmeddelanden med sökvägar och kodutdrag, som underlättar arbetet för angripare.

## Control Panel, användare och plugin

Control Panel ligger som standard under `/admin`. Kontrollera vilka användare som har administratörsrättigheter och ta bort åtkomster som tillhör tidigare medarbetare och frilansare. Craft stöder tvåfaktorsinloggning; använd den för alla konton med förhöjda rättigheter.

Sätt i produktion `allowAdminChanges` till `false`. Då kan fält, sektioner och plugin-inställningar bara ändras via den versionshanterade Project Config, och varje avvikelse märks vid avstämningen mot Git. Plugin från Plugin Store har egen PHP-kod; kontrollera att alla fortfarande underhålls och passar den eftersträvade PHP-versionen.

```php
// config/general.php, utdrag för produktionsmiljön
'devMode' => false,
'allowAdminChanges' => false,
```

## Vad en Craft-uppdatering klarar och inte klarar

En uppdatering av Craft eller ett plugin stänger fel i den koden och kan möjliggöra nyare PHP-versioner. Den patchar inte PHP, startar varken om PHP-FPM eller kön, förnyar ingen läckt Security Key och tar inte bort främmande filer ur `web/` eller `storage/`.

För byråer med många Craft-installationer räknas efter patchen framför allt repeterbarheten. Anteckna per webbplats vilken PHP-version som körs på webben och på kommandoraden, när omstarten bekräftades och om kontrollerna var avvikande. Den överblicken hjälper vid frågor från kunder och vid framtida larm. Tänk också på offentligt nåbara staging- och utvecklingsmiljöer. De körs ofta med `devMode`, äldre versioner och riktiga kunddata och glöms gärna bort vid uppdateringar. Finns det tvivel om en kundsajt är berörd, informera kunden sakligt i stället för att avvakta.

## Hur hjälper PHP SOS konkret?

- Vi sammanställer tillsammans med er alla Craft-installationer med webbhotell, PHP-status och ansvar.
- Vi låter patch och omstart bekräftas per server och säkrar loggar från och med den 20 oktober 2026.
- Vi kontrollerar dokumentrot, `storage`, konfiguration, användare och avstämningen av Project Config.
- På begäran tar vi över den löpande säkerhetsövervakningen av era kundsajter i [säkerhetsunderhållsavtalet](https://phpsos.de/sv/leistungen/security-wartungsvertrag/), även i ert namn.


## Vanliga frågor

**Berörs Craft CMS av PHP2Shell?**  
Craft CMS självt har ingen ny sårbarhet. Det körs dock på PHP, och PHP2Shell finns i PHP. Varje Craft-installation på en opatchad server kan därför vara sårbar, oavsett Craft-version.

**Var visar Craft PHP-versionen?**  
I Control Panel under Verktyg > Systemrapport. Där står PHP-version, databas och installerade plugin. En installerad backport går inte att känna igen på numret; det bekräftar ert webbhotell.

**Vad är Security Key i Craft och varför förnya den?**  
Security Key i filen .env används för att signera och kryptera data. Den som känner till den kan under vissa omständigheter förfalska sessioner eller formulärdata. Vid misstanke bör ni förnya den i samråd med er byrå.

**Vad ger allowAdminChanges på false?**  
Då går det inte längre att ändra fält, sektioner och plugin-inställningar i produktion via Control Panel. Ändringar kommer bara via den versionshanterade Project Config, vilket gör manipulationer svårare och mer synliga.

## Källor

- [php.net: säkerhetsmeddelanden](https://www.php.net/)
- [Craft CMS](https://craftcms.com/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [PHP-versioner som stöds](https://www.php.net/supported-versions.php)
