Stéphane Fosse

wp2shell
La mise à jour WordPress, un pari que personne ne veut prendre

Publié le

Une chaîne d'exploitation qui ne demande rien

wp2shell, ce n'est pas une faille isolée. C'est un enchaînement de deux vulnérabilités du cœur de WordPress. La première, CVE-2026-60137, est un contournement d'authentification dans l'API REST, un routage confus qui permet d'appeler des traitements internes sans aucun contrôle de permission. La seconde exploite un paramètre de WP_Query, permettant une injection SQL. Mises bout à bout, en une seule requête HTTP, elles donnent un accès administrateur à un attaquant anonyme, sur une installation WordPress standard, sans le moindre plugin installé.

C'est ce dernier point qui change la donne : la surface d'attaque n'est plus l'écosystème de plugins, historiquement le maillon faible, mais le noyau lui-même. Chercheurs et éditeurs de sécurité (watchTowr, KEVIntel, Wiz, Cloudflare, Intruder) ont observé le même scénario que pour toute faille critique WordPress rendue publique : exfiltration de hashs de mots de passe d'abord, puis exécution de code une fois les détails techniques diffusés, puis scan massif et indiscriminé dès qu'un exploit public a circulé. Comptes administrateur créés en masse, faux plugins de sécurité déguisés en web shell, installation du RAT Overlord : la mécanique est désormais bien rodée, presque industrielle.

Le patch existe. C'est justement le problème.

Un correctif disponible ne veut rien dire tant qu'il n'est pas déployé. Et c'est là que le sujet dépasse largement wp2shell. WordPress doit une bonne partie de son succès à son écosystème de plugins et de thèmes — des dizaines de milliers de composants tiers, de qualité et de niveau de maintenance très inégaux. Chaque montée de version du cœur est donc un pari : est-ce que tel plugin de caching, tel constructeur de pages, tel thème acheté sur un marketplace va continuer à fonctionner après la mise à jour ?

Un administrateur de site sérieux ne se contente pas de cliquer sur Mettre à jour. Il doit vérifier que rien ne casse : le formulaire de contact, le tunnel de paiement, l'affichage du thème, les intégrations tierces. Pour une agence outillée avec un environnement de staging et une suite de tests, c'est une routine. Pour la très grande majorité des sites WordPress — un artisan, une association, une TPE qui a fait développer son site il y a cinq ans et n'y touche plus — cette étape n'existe simplement pas. Pas de staging, pas de sauvegarde fiable, pas de compétence en interne pour juger si une régression visuelle est acceptable ou si elle cache un problème de fond, ni comment la corriger.

Résultat : les mises à jour automatiques de sécurité, quand elles sont activées, sauvent une partie du parc. Pour le reste, la mise à jour manuelle est reportée, parfois indéfiniment, précisément parce que le risque perçu de casser le site en production dépasse le risque perçu de laisser une faille ouverte. C'est un arbitrage rationnel du point de vue de l'administrateur non outillé et non averti, et c'est exactement ce qui maintient un parc de plusieurs centaines de millions de sites dans un état de vulnérabilité chronique, bien après la sortie de chaque correctif.

Le test automatisé, un palliatif plus qu'une solution

Je ne prétends pas que le test automatisé règle ce problème. Mais il en traite la cause la plus concrète : l'incertitude sur ce qui va casser. Un site qui dispose d'un minimum de tests fonctionnels de non-régression — vérifier que la page d'accueil se charge, que le panier fonctionne, que le formulaire envoie bien un mail, que le thème ne s'effondre pas visuellement — peut appliquer une mise à jour et obtenir une réponse en quelques minutes plutôt qu'en plusieurs jours d'observation manuelle inquiète. Ce n'est pas un test unitaire de code qu'on demande à un administrateur WordPress. C'est un test de bout en bout, exécuté contre un environnement de préproduction, qui rejoue les parcours critiques du site.

Vu du côté architecture, c'est un problème d'outillage plus que de discipline. Les hébergeurs mutualisés et les extensions grand public pourraient proposer, en standard, un environnement de staging cloné en un clic, jetable, et une poignée de scénarios de test génériques (accueil, recherche, formulaire de contact, page de connexion) prêts à l'emploi. Ce n'est pas la solution unique — durcissement du serveur, WAF devant l'API batch, moindre privilège sur la base de données, tout cela reste nécessaire — mais c'est le seul levier qui agit directement sur le frein réel : la peur.

Tant que mettre à jour WordPress restera un saut dans l'inconnu pour l'administrateur non outillé, le décalage entre disponibilité du patch et application du patch continuera d'alimenter ce genre de campagnes d'exploitation de masse. wp2shell n'est pas une anomalie. C'est un symptôme récurrent d'un écosystème qui a gagné en richesse fonctionnelle ce qu'il a perdu en prévisibilité opérationnelle.