Situation actuelle : PHP2Shell. Deux failles PHP critiques (CVSS 9.2) permettent d'exécuter du code malveillant sans authentification. Correctifs disponibles depuis le 21 octobre 2026.Ce qu'il faut faire maintenant →

Sécurité Craft CMS après PHP2Shell : sécuriser les sites d'agence

Craft CMS tourne sur PHP et est souvent utilisé par des agences avec de nombreux sites clients. Après PHP2Shell comptent le correctif, le redémarrage, une clé de sécurité protégée et la comparaison de la Project Config.

État 5 min de lecturePlateformes

En bref : après PHP2Shell, la sécurité de Craft CMS dépend du PHP du serveur, pas de Craft. Les agences avec de nombreux sites Craft devraient surtout contrôler chaque serveur individuellement dès maintenant. Après le correctif et le redémarrage, .env, la clé de sécurité, devMode, la racine web et la comparaison de la Project Config doivent être contrôlés.

Ce que PHP2Shell signifie pour les sites Craft

Craft CMS est apprécié des agences parce qu'il offre des modèles de contenu flexibles et des templates propres. De nombreuses agences suivent donc des dizaines de sites Craft sur différents serveurs et offres d'hébergement. Les failles PHP CVE-2026-109618 et CVE-2026-109619 permettent, selon l'équipe PHP, d'exécuter du code malveillant à distance sans authentification, quelle que soit la version de Craft.

Pour les agences, la question la plus importante est donc organisationnelle : quel site tourne où, avec quel PHP, et qui est responsable de la mise à jour ? Une liste de toutes les installations avec hébergeur, état de PHP et interlocuteur est la première étape. La manière dont nous soutenons les agences est décrite dans Partenaire de sécurité pour les agences.

Sécurité Craft CMS : vérifier la version de PHP

Dans le Control Panel, Utilitaires > Rapport système affiche la version de PHP, la base de données et les plugins installés. C'est la version avec laquelle le site fonctionne sur le web. La console Craft php craft, le traitement de la file d'attente et les tâches cron utilisent en revanche le PHP en ligne de commande. Les deux doivent être corrigés.

Les versions corrigées en amont sont 8.5.12, 8.4.27, 8.3.36 et 8.2.35. De nombreux hébergeurs appliquent les correctifs sous forme de backport ; le numéro reste alors identique. Les versions concernées sont indiquées dans Quelles versions de PHP sont concernées ?. Les versions de PHP prises en charge par votre version de Craft se vérifient dans la configuration requise de la documentation sur craftcms.com.

Craft traite les tâches d'arrière-plan dans une file d'attente. Si elle tourne comme processus permanent sous un gestionnaire de processus, celui-ci doit aussi être redémarré après la mise à jour de PHP.

Dossiers et configuration dans Craft

Emplacement Contenu Point de contrôle
.env Accès à la base de données, CRAFT_SECURITY_KEY, autres clés renouveler les valeurs en cas de soupçon
config/general.php devMode, allowAdminChanges, chemin du Control Panel code PHP inséré
config/project/ Project Config en YAML comparaison avec Git
web/ Racine web avec index.php, cpresources/, souvent les uploads fichiers PHP supplémentaires
storage/ Journaux, fichiers d'exécution, souvent sauvegardes de la base de données non accessible via le web
templates/ Templates Twig JavaScript étranger
modules/, vendor/ modules propres et plugins fichiers modifiés, composer audit

Un point souvent négligé est storage/backups/. Craft y dépose des sauvegardes de la base de données qui peuvent contenir l'intégralité des données clients et de formulaires. Ce dossier ne doit jamais se trouver sous la racine web.

Contrôles sans danger en ligne de commande :

# Afficher les différences entre la Project Config et la base de données
php craft project-config/diff
# Fichiers PHP dans la racine web, hors index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Important

En production, devMode doit être sur false. Avec devMode activé, Craft affiche des messages d'erreur détaillés avec chemins et extraits de code, qui facilitent le travail des attaquants.

Control Panel, utilisateurs et plugins

Le Control Panel se trouve par défaut sous /admin. Vérifiez quels utilisateurs ont des droits d'administrateur et supprimez les accès d'anciens collaborateurs et d'indépendants. Craft prend en charge l'authentification à deux facteurs ; utilisez-la pour tous les comptes à droits élevés.

Mettez allowAdminChanges sur false en production. Champs, sections et réglages de plugins ne peuvent alors être modifiés que via la Project Config versionnée, et tout écart se remarque lors de la comparaison avec Git. Les plugins du Plugin Store apportent leur propre code PHP ; vérifiez s'ils sont tous encore maintenus et compatibles avec la version de PHP visée.

// config/general.php, extrait pour l'environnement de production
'devMode' => false,
'allowAdminChanges' => false,

Ce qu'une mise à jour de Craft peut faire et ne peut pas faire

Une mise à jour de Craft ou d'un plugin comble des défauts de ce code et peut permettre d'utiliser des versions de PHP plus récentes. Elle ne corrige pas PHP, ne redémarre ni PHP-FPM ni la file d'attente, ne renouvelle pas une clé de sécurité qui a fuité et ne supprime aucun fichier étranger de web/ ou de storage/.

Pour les agences avec de nombreuses installations Craft, ce qui compte surtout après le correctif, c'est la reproductibilité. Consignez pour chaque site quelle version de PHP fonctionne sur le web et en ligne de commande, quand le redémarrage a été confirmé et si les contrôles ont révélé des anomalies. Cet aperçu aide lors des questions des clients et pour de futures alertes. Pensez aussi aux environnements de staging et de développement accessibles publiquement. Ils tournent souvent avec devMode, des versions plus anciennes et de vraies données clients, et sont volontiers oubliés lors des mises à jour. En cas de doute sur le fait qu'un site client soit concerné, informez le client de façon factuelle plutôt que d'attendre.

Comment PHP SOS aide-t-il concrètement ?

  • Nous recensons avec vous toutes les installations Craft avec hébergeur, état de PHP et responsabilité.
  • Nous faisons confirmer le correctif et le redémarrage pour chaque serveur et sauvegardons les journaux à partir du 20/10/2026.
  • Nous contrôlons la racine web, storage, la configuration, les utilisateurs et la comparaison de la Project Config.
  • Sur demande, nous assurons le suivi de sécurité continu de vos sites clients dans le contrat de maintenance de sécurité, aussi sous votre nom.

Questions fréquentes

Craft CMS est-il concerné par PHP2Shell ?

Craft CMS lui-même n'a pas de nouvelle faille. Mais il fonctionne sur PHP, et PHP2Shell se trouve dans PHP. Toute installation de Craft sur un serveur non corrigé est donc potentiellement vulnérable, quelle que soit la version de Craft.

Où Craft affiche-t-il la version de PHP ?

Dans le Control Panel, sous Utilitaires > Rapport système. On y trouve la version de PHP, la base de données et les plugins installés. Un backport appliqué ne se reconnaît pas au numéro ; votre hébergeur le confirme.

Qu'est-ce que la clé de sécurité dans Craft et pourquoi la renouveler ?

La clé de sécurité du fichier .env sert à signer et à chiffrer des données. Qui la connaît peut, dans certaines circonstances, falsifier des sessions ou des données de formulaires. En cas de soupçon, vous devriez la renouveler en concertation avec votre agence.

À quoi sert allowAdminChanges sur false ?

Ainsi, champs, sections et réglages de plugins ne peuvent plus être modifiés en production via le Control Panel. Les modifications ne passent plus que par la Project Config versionnée, ce qui rend les manipulations plus difficiles et plus visibles.

Sources

Contact immédiat

Chaque heure compte. Écrivez-nous maintenant.

Décrivez brièvement votre système, votre version de PHP et ce que vous avez observé. Nous vous répondons, faisons le point et travaillons à distance jusqu'à la clôture et la documentation de l'incident.

Aide immédiate