Il suffit qu'un administrateur WordPress connecté ouvre un lien piégé pour que s'installe un thème du répertoire officiel choisi par l'attaquant. Si ce thème est mal protégé, l'attaquant peut ensuite exécuter du code sur le serveur. L'équipe WordPress a corrigé cette faille Click2Shell dans la version 7.1.1, publiée le 17 septembre.

Un lien piégé peut forcer WordPress à installer un thème puis exécuter du code - ©Tada Images / Shutterstock
Un lien piégé peut forcer WordPress à installer un thème puis exécuter du code - ©Tada Images / Shutterstock

Souvenez-vous, cet été, un attaquant pouvait exécuter du code à distance sur WordPress en toute autonomie, grâce à deux failles du cœur du CMS et à des exploits publics. Cette fois, il a besoin de l'aide à son insu d'un administrateur connecté qui ouvre son lien piégé.

Paulos Yibelo, chercheur de l'entreprise de sécurité pwn.ai, a signalé ce défaut à WordPress le 22 août, et le détail technique est public depuis le 18 septembre. D'après The Hacker News, la faille remonte à WordPress 6.0. Le média ne relève aucun signe d'attaque réelle et précise que WordPress prévoit d'ajouter un identifiant CVE.

L'installation forcée, comment ça marche ?

L'attaquant construit une adresse de la page /wp-admin/theme-install.php et remplit le paramètre theme avec des caractères spéciaux. WordPress.org ramène cette valeur à l'identifiant d'un thème officiel. Dans la démonstration de pwn.ai, ce thème était twentytwenty. Le navigateur de l'administrateur, en revanche, reprend le texte brut de l'adresse, sans échappement, dans un sélecteur jQuery chargé de retrouver un élément de la page.

En ajoutant ces caractères, l'attaquant détourne le sélecteur vers le vrai bouton Installer. Selon pwn.ai, le JavaScript de WordPress clique alors tout seul sur ce bouton et fournit le jeton de sécurité de l'installation au nom de l'attaquant, si bien qu'aucun jeton anti-CSRF n'a besoin d'être volé. Le thème choisi est ensuite téléchargé puis installé. Il est inactif, et l'apparence visible du site n'est pas modifiée.

La victime doit être un administrateur authentifié, et il a suffi à pwn.ai d'un seul clic sur l'adresse piégée pour déclencher l'installation. D'après The Hacker News, l'attaquant ne peut installer par ce défaut que des thèmes du répertoire officiel WordPress.org, jamais une archive de son choix.

Comment on part de l'installation forcée pour arriver à l'exécution de code ?

Pour pwn.ai, WordPress charge le PHP d'un thème pendant un aperçu dans le Customizer, même quand un autre thème est actif. Les chercheurs ont donc installé de force Mobile Repair Zone 2.5.4, un thème du répertoire officiel à l'époque, puis lancé un aperçu de ce thème. Pour cet aperçu, ils ont utilisé l'adresse /wp-admin/admin-ajax.php avec les paramètres wp_customize=on et customize_theme.

Le code de Mobile Repair Zone enregistrait un gestionnaire AJAX dépourvu de jeton de sécurité et de contrôle des droits. L'attaquant lui envoie l'adresse d'un plugin malveillant en POST. Dès lors, le serveur télécharge ce plugin, charge son point d'entrée et exécute le code PHP de l'attaquant sous le compte du serveur.

Sur l'échelle CVSS 3.1, pwn.ai a noté 7,1 l'installation forcée seule, mais 9,6 la chaîne complète jusqu'à l'exécution de code. Le 1er septembre, pwn.ai a fourni à WordPress la chaîne complète avec sa preuve, et WordPress lui a versé la prime maximale de son programme de bug bounty.

L'équipe WordPress a corrigé le sélecteur dans le changeset 63664, en échappant la valeur de l'adresse et en limitant la recherche au bouton d'installation légitime. Dans les notes de version de WordPress 7.1.1, publiées avant-hier, l'équipe annonce 11 failles de sécurité corrigées, dont le cas où « des URL spécialement conçues peuvent installer et prévisualiser automatiquement un thème inactif ». Paulos Yibelo, de pwn.ai, est crédité pour cette découverte.

L'équipe a rétroporté les correctifs vers toutes les branches admissibles, jusqu'à la 4.7 pour le moment. Si vous êtes admin et avez activé les mises à jour automatiques en arrière-plan, vous recevrez la version 7.1.1 sans intervention. Sinon, vous pouvez l'installer depuis votre tableau de bord. Quant à Mobile Repair Zone, pwn.ai ne précise pas si le thème a été corrigé ou retiré du répertoire.

À découvrir
Meilleur Antivirus : Le Comparatif en 2026
Comparatifs services