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é Moodle après PHP2Shell : sécuriser correctement les plateformes d'apprentissage

Moodle gère données des participants, notes et travaux d'examen, souvent de mineurs. Après PHP2Shell comptent le correctif PHP, le redémarrage du web et de cron, un moodledata protégé et des plugins contrôlés.

État 5 min de lecturePlateformes

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"
Important

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 moodledata avant 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.

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