Actuele situatie: PHP2Shell. Twee kritieke PHP-kwetsbaarheden (CVSS 9.2) maken schadelijke code zonder inloggen mogelijk. Patches sinds 21-10-2026.Wat u nu moet doen →

Craft CMS-beveiliging na PHP2Shell: bureauwebsites beveiligen

Craft CMS draait op PHP en wordt vaak door bureaus met veel klantwebsites ingezet. Na PHP2Shell tellen patch, herstart, een beschermde security key en de vergelijking van de project config.

Stand 4 min. leestijdPlatforms

Kort gezegd: Craft CMS-beveiliging hangt na PHP2Shell af van de PHP van de server, niet van Craft. Juist bureaus met veel Craft-websites moeten nu elke server afzonderlijk controleren. Na patch en herstart horen .env, security key, devMode, de documentroot en de vergelijking van de project config op de controlelijst.

Wat PHP2Shell betekent voor Craft-websites

Craft CMS is geliefd bij bureaus, omdat het flexibele inhoudsmodellen en nette templates biedt. Dienovereenkomstig beheren veel bureaus tientallen Craft-websites op verschillende servers en hostingpakketten. De PHP-kwetsbaarheden CVE-2026-109618 en CVE-2026-109619 maken het volgens het PHP-team mogelijk om op afstand en zonder inloggen schadelijke code uit te voeren, onafhankelijk van de Craft-versie.

Voor bureaus is de belangrijkste vraag daarom organisatorisch: welke website draait waar, met welke PHP, en wie is voor de update verantwoordelijk? Een lijst van alle installaties met hostingprovider, PHP-status en contactpersoon is de eerste stap. Hoe wij bureaus daarbij ondersteunen, beschrijft Beveiligingspartner voor bureaus.

Craft CMS-beveiliging: PHP-versie controleren

In het Control Panel toont Hulpprogramma's > Systeemrapport de PHP-versie, de database en de geïnstalleerde plug-ins. Dat is de versie waarmee de website op het web draait. De Craft-console php craft, queueverwerking en cronjobs gebruiken daarentegen de opdrachtregel-PHP. Beide moeten zijn gepatcht.

Verholpen upstreamversies zijn 8.5.12, 8.4.27, 8.3.36 en 8.2.35. Veel hostingproviders voeren correcties als backport door; het nummer blijft dan gelijk. Welke versies getroffen zijn, toont Welke PHP-versies zijn getroffen?. Welke PHP-versies uw Craft-versie ondersteunt, controleert u volgens de systeemeisen in de documentatie op craftcms.com.

Craft verwerkt achtergrondtaken in een wachtrij. Draait die als permanent proces onder een procesmanager, dan moet ook dat na de PHP-update opnieuw worden gestart.

Mappen en configuratie in Craft

Plek Inhoud Controlepunt
.env Databasetoegang, CRAFT_SECURITY_KEY, overige sleutels waarden bij vermoeden vernieuwen
config/general.php devMode, allowAdminChanges, pad naar het Control Panel ingevoegde PHP-code
config/project/ Project config als YAML vergelijking met Git
web/ Documentroot met index.php, cpresources/, vaak uploads extra PHP-bestanden
storage/ Logs, runtimebestanden, vaak database-back-ups niet via het web bereikbaar
templates/ Twig-templates vreemd JavaScript
modules/, vendor/ eigen modules en plug-ins gewijzigde bestanden, composer audit

Een vaak over het hoofd gezien punt is storage/backups/. Craft plaatst daar database-back-ups die volledige klant- en formuliergegevens kunnen bevatten. Deze map mag nooit onder de documentroot staan.

Ongevaarlijke controles op de opdrachtregel:

# Verschillen tussen project config en database weergeven
php craft project-config/diff
# PHP-bestanden in de documentroot behalve index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Belangrijk

In productie hoort devMode op false. Met ingeschakelde devMode toont Craft uitvoerige foutmeldingen met paden en codefragmenten, die aanvallers het werk makkelijker maken.

Control Panel, gebruikers en plug-ins

Het Control Panel staat standaard onder /admin. Controleer welke gebruikers beheerdersrechten hebben en verwijder toegangen van voormalige medewerkers en freelancers. Craft ondersteunt tweestapsverificatie; gebruik die voor alle accounts met verhoogde rechten.

Zet in productie allowAdminChanges op false. Dan zijn velden, secties en plug-in-instellingen alleen nog via de geversioneerde project config te wijzigen, en valt elke afwijking bij de vergelijking met Git op. Plug-ins uit de Plugin Store brengen eigen PHP-code mee; controleer of ze nog worden onderhouden en bij de beoogde PHP-versie passen.

// config/general.php, fragment voor de productieomgeving
'devMode' => false,
'allowAdminChanges' => false,

Wat een Craft-update wel en niet kan

Een update van Craft of een plug-in dicht fouten in die code en kan nieuwere PHP-versies mogelijk maken. Ze patcht PHP niet, herstart noch PHP-FPM noch de wachtrij, vernieuwt geen weggelekte security key en verwijdert geen vreemde bestanden uit web/ of storage/.

Voor bureaus met veel Craft-installaties telt na de patch vooral herhaalbaarheid. Leg per website vast welke PHP-versie op het web en op de opdrachtregel draait, wanneer de herstart is bevestigd en of de controles opvallend waren. Dit overzicht helpt bij vragen van klanten en bij toekomstige meldingen. Denk ook aan openbaar bereikbare staging- en ontwikkelomgevingen. Ze draaien vaak met devMode, oudere versies en echte klantgegevens en worden bij updates graag vergeten. Bestaat er twijfel of een klantwebsite is getroffen, informeer de klant dan zakelijk in plaats van af te wachten.

Hoe helpt PHP SOS concreet?

  • Wij inventariseren met u alle Craft-installaties met hostingprovider, PHP-status en verantwoordelijkheid.
  • Wij laten patch en herstart per server bevestigen en maken een kopie van logs vanaf 20-10-2026.
  • Wij controleren documentroot, storage, configuratie, gebruikers en de vergelijking van de project config.
  • Desgewenst nemen wij de lopende beveiligingsbegeleiding van uw klantwebsites over in het beveiligingsonderhoudscontract, ook onder uw naam.

Veelgestelde vragen

Is Craft CMS getroffen door PHP2Shell?

Craft CMS zelf heeft geen nieuwe kwetsbaarheid. Het draait echter op PHP, en PHP2Shell zit in PHP. Elke Craft-installatie op een ongepatchte server is daarom potentieel kwetsbaar, ongeacht de Craft-versie.

Waar toont Craft de PHP-versie?

In het Control Panel onder Hulpprogramma's > Systeemrapport. Daar staan PHP-versie, database en geïnstalleerde plug-ins. Een doorgevoerde backport is aan het nummer niet te herkennen; dat bevestigt uw hostingprovider.

Wat is de security key in Craft en waarom vernieuwen?

De security key uit het bestand .env dient om gegevens te ondertekenen en te versleutelen. Wie hem kent, kan onder omstandigheden sessies of formuliergegevens vervalsen. Vernieuw hem bij een vermoeden in overleg met uw bureau.

Wat levert allowAdminChanges op false op?

Daarmee zijn velden, secties en plug-in-instellingen in productie niet meer via het Control Panel te wijzigen. Wijzigingen komen alleen nog via de geversioneerde project config, wat manipulaties moeilijker en zichtbaarder maakt.

Bronnen

Direct contact

Elk uur telt. Schrijf ons nu.

Beschrijf kort het systeem, de PHP-versie en wat u opmerkt. Wij nemen contact op, brengen de situatie in kaart en werken op afstand tot het incident is afgerond en gedocumenteerd.

Directe hulp