Aktuellt läge: PHP2Shell. Två kritiska PHP-sårbarheter (CVSS 9,2) tillåter skadlig kod utan inloggning. Patchar sedan den 21 oktober 2026.Vad som bör göras nu →

Craft CMS-säkerhet efter PHP2Shell: skydda byråernas webbplatser

Craft CMS körs på PHP och används ofta av byråer med många kundsajter. Efter PHP2Shell gäller patch, omstart, en skyddad Security Key och avstämning av Project Config.

Aktualitet 4 min läsningPlattformar

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.

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?. 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:

# 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.

// 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, ä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

Direktkontakt

Varje timme räknas. Skriv till oss nu.

Beskriv kort system, PHP-version och observation. Vi hör av oss, klarlägger läget och arbetar på distans tills incidenten är avslutad och dokumenterad.

Direkthjälp