En bref : après PHP2Shell, la sécurité de Moodle dépend du PHP du serveur, pas de Moodle. Comme les plateformes d'apprentissage traitent les données d'élèves, d'étudiants et de salariés, il est important d'agir vite. Corrigez PHP pour le web et cron, redémarrez tous les processus et contrôlez config.php, moodledata, les plugins et les comptes admin.
Ce que PHP2Shell signifie pour les exploitants de Moodle
Moodle est répandu dans les écoles, les hautes écoles, la formation continue et pour les formations internes en entreprise. La plateforme gère des noms, des adresses e-mail, des inscriptions aux cours, des notes, des travaux d'examen et des contributions aux forums, dans les écoles souvent de mineurs. Les failles PHP CVE-2026-109618 et CVE-2026-109619 permettent, selon l'équipe PHP, d'exécuter du code malveillant à distance sans authentification.
Les serveurs Moodle sont presque toujours accessibles depuis Internet, car les apprenants travaillent depuis chez eux. Le BSI (office fédéral allemand de la sécurité des systèmes d'information) recommande, au niveau d'alerte 3, une mise à jour immédiate et, si ce n'est pas possible, de déconnecter temporairement les serveurs web du réseau. Pour les écoles et les organismes de formation, c'est difficile sur le plan organisationnel, mais planifiable. Vous trouverez des indications spécifiques au secteur sous Sécurité informatique pour les écoles et organismes de formation.
Sécurité Moodle : vérifier la version de PHP pour le web et cron
Sous Administration du site > Serveur > Environnement, Moodle vérifie la version de PHP et d'autres exigences. Sous Serveur > Infos PHP, les administrateurs voient en outre les indications PHP complètes. Les deux décrivent le PHP web.
Moodle a en outre besoin d'une tâche cron qui exécute régulièrement admin/cli/cron.php via le PHP en ligne de commande. Cette version peut différer et doit aussi être corrigée. Les versions corrigées en amont sont 8.5.12, 8.4.27, 8.3.36 et 8.2.35 ; les backports portent souvent des numéros plus anciens. Les versions de PHP prises en charge par votre version de Moodle se vérifient dans la configuration requise de la documentation sur moodle.org. Pour redémarrer ensuite proprement tous les processus, voir Redémarrer PHP-FPM et tous les workers.
Dossiers et configuration dans Moodle
| Emplacement | Contenu | Point de contrôle |
|---|---|---|
config.php |
Accès à la base de données, wwwroot, chemin vers moodledata |
code inséré, changer le mot de passe en cas de soupçon |
moodledata/ |
Stockage de fichiers, travaux remis, sessions, caches | en dehors de la racine web, aucun fichier PHP |
mod/, blocks/, local/, theme/ |
Activités, blocs, extensions locales, designs | plugins inconnus ou modifiés |
admin/cli/ |
Scripts en ligne de commande | utilisables uniquement en CLI |
Moodle propose un réglage qui empêche de modifier les chemins de programmes via l'interface web. Il a sa place dans config.php et rend plus difficile, via un compte admin détourné, l'appel de programmes sur le serveur :
$CFG->preventexecpath = true;
Contrôles sans danger en ligne de commande, en tant qu'utilisateur du serveur web :
# Afficher les contrôles d'état et de sécurité propres à Moodle
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Rechercher des fichiers PHP dans le répertoire de données (adapter le chemin)
find /pfad/zu/moodledata -type f -name "*.php"
En cas de soupçon de fuite de données dans une école ou une haute école, plusieurs instances sont vite impliquées : direction, organisme gestionnaire, délégués à la protection des données et, le cas échéant, l'autorité de contrôle. Sauvegardez les journaux à partir du 20/10/2026 et documentez chaque mesure avec l'heure.
Plugins, comptes admin et uploads
Un conseil pratique pour la planification : les mises à jour de PHP et les redémarrages ne devraient pas tomber pendant des périodes d'examens ou des tests en ligne en cours. Moodle dispose d'un mode maintenance qui informe les utilisateurs au préalable. Il ne protège toutefois pas contre PHP2Shell, car la page de maintenance est elle aussi livrée par PHP.
Moodle vit de ses plugins : activités, outils d'examen, connexions aux visioconférences et à la gestion scolaire. Chaque plugin est du code PHP supplémentaire et doit correspondre à la version de Moodle. Dans l'administration du site, Moodle affiche les mises à jour disponibles pour le cœur et les plugins. Supprimez entièrement les plugins que plus personne n'utilise.
Vérifiez la liste des administrateurs du site et les rôles globaux aux droits étendus. Les enseignants et les créateurs de cours n'ont en général pas besoin de droits globaux. Activez l'authentification à deux facteurs au moins pour les administrateurs. Les types de fichiers autorisés pour les uploads devraient être aussi restreints que possible ; des conseils à ce sujet sont proposés par Mettre en œuvre en toute sécurité les uploads de fichiers en PHP.
Ce qu'une mise à jour de Moodle peut faire et ne peut pas faire
Une mise à jour de Moodle comble des défauts de Moodle et permet souvent d'utiliser des versions de PHP plus récentes. Elle ne corrige pas PHP, ne redémarre ni les processus web ni cron et ne supprime aucun fichier étranger de moodledata, aucun administrateur supplémentaire et aucun plugin modifié. Une mise à jour ne répond pas non plus à la question de savoir si des données ont fui avant le correctif.
Moodle consigne en outre les connexions et les actions dans ses propres journaux, que les administrateurs consultent sous Administration du site > Rapports. Recherchez-y précisément des connexions suspectes d'administrateurs, de nouveaux comptes avec des rôles globaux et des installations de plugins depuis le 17/10/2026. Exportez ces entrées avant que des nettoyages automatiques ne suppriment des données plus anciennes. Les rapports complètent les journaux du serveur web, mais ne les remplacent pas.
Comment PHP SOS aide-t-il concrètement ?
- Nous clarifions la responsabilité de PHP et faisons confirmer l'état du correctif et le redémarrage du web et de cron.
- Nous sauvegardons les journaux, la base de données et
moodledataavant toute modification. - Nous contrôlons la configuration, les plugins, les administrateurs, les rôles et les uploads.
- Sur demande, nous assurons le suivi durable de la plateforme dans le contrat de maintenance de sécurité, adapté à l'année scolaire et aux périodes d'examens.
Questions fréquentes
Moodle est-il concerné par PHP2Shell ?
Moodle lui-même n'a pas de nouvelle faille, mais il fonctionne sur PHP. Si le PHP du serveur n'est pas corrigé, un attaquant peut, selon l'équipe PHP, exécuter du code sans authentification. Une mise à jour de Moodle n'y change rien.
Où vois-je la version de PHP dans Moodle ?
Sous Administration du site > Serveur > Environnement, Moodle vérifie la version de PHP par rapport à ses exigences. Moodle n'indique pas si un backport a été appliqué ; l'exploitant du serveur le confirme.
Pourquoi moodledata doit-il se trouver en dehors du répertoire web ?
On y trouve les fichiers téléversés, les travaux remis, les sessions et les caches. Si le répertoire est accessible via le web, des contenus peuvent éventuellement être consultés directement. Moodle exige donc un emplacement en dehors de la racine web.
Qui est responsable de la mise à jour de PHP dans les écoles ?
Cela varie : l'organisme gestionnaire de l'école, un établissement public du Land, un centre de calcul communal ou un prestataire. Clarifiez la responsabilité par écrit et faites-vous confirmer l'état du correctif et le redémarrage.