
Un attaquant authentifié avec un simple rôle abonné pouvait escalader jusqu'à l'exécution de code arbitraire sur le serveur hôte. Pour les équipes PHP, c'est un rappel brutal: unserialize sur des entrées utilisateur reste une faute professionnelle grave, même en 2026.
Tutor LMS: la mécanique de l'injection
La faille repose sur un flux de désérialisation non filtré: des paramètres transitent jusqu'à un appel à unserialize sans restriction sur les classes autorisées. Conséquence directe: un abonné peut injecter une chaîne sérialisée déclenchant le chargement d'une classe gadget via l'autoloader, puis exécuter du code via une méthode magique (__wakeup, __destruct, __toString selon les gadgets disponibles).
Atténuation technique: unserialize($input, ['allowed_classes' => false]) est le minimum. Depuis PHP 7.0, la signature accepte ce second argument; ne jamais le laisser à sa valeur par défaut sur des données non fiables. Côté Tutor LMS, le correctif verrouille le flux — vérifier le changelog officiel, mettre à jour l'extension, relancer le cron d'invalidation des sessions et auditer les logs d'accès pour repérer d'éventuelles requêtes suspectes antérieures au patch.
Click2Shell et CVE-2026-27540: l'écosystème WordPress sous pression
Sur un axe différent mais concomitant, WordPress 7.1.1 colmate une faille core baptisée Click2Shell par pwn.ai. Un lien spécifiquement construit, ouvert par un administrateur déjà connecté, provoque l'installation automatique d'un thème depuis le dépôt officiel — sans clic sur « Installer ». CVSS 7.1 sur l'install forcée; 9.6 sur la chaîne complète lorsqu'un thème contenant un handler d'arrière-plan exécutant du PHP non vérifié est enchaîné. Le mécanisme exploite une divergence d'interprétation: WordPress.org lit une valeur comme nom de thème légitime, tandis que le navigateur admin conserve la chaîne brute dans un contexte de sélection DOM.
En parallèle, The Hacker News signale une exploitation active de la CVE-2026-27540 dans le plugin WooCommerce Wholesale Lead Capture. La vulnérabilité permet le téléversement non authentifié de webshells PHP. Pour les stacks e-commerce PHP, auditer les répertoires wp-content/uploads et wp-content/plugins/* à la recherche de fichiers PHP récents non attendus — un webshell se camoufle rarement dans un répertoire d'images, mais il atterrit rarement non plus à la racine d'un plugin.
Verdict
Trois incidents, un même motif récurrent: entrées PHP non filtrées, sérialisation non restreinte, téléversement sans contrôle de type MIME strict. Tutor LMS: mise à jour prioritaire, purge des sessions, revue des logs. WordPress core: 7.1.1 sans délai. WooCommerce Wholesale Lead Capture: patch ou retrait immédiat. Pour les développeurs PHP: relire chaque appel à unserialize, chaque move_uploaded_file, chaque handler d'upload — c'est l'inventaire qui décide.