Mise à jour le 18 juillet 2026 : les deux failles ont désormais des identifiants CVE, des mécanismes complets ont été publiés, des conditions de cache d’objets persistants ont été établies et une preuve de travail est accessible au public. L’histoire ci-dessous couvre tout.
Les requêtes HTTP anonymes peuvent exécuter du code sur un site WordPress. Une simple installation sans plugin est possible car le bug est dans le noyau. Chaque site servait les versions 6.9 et 7.0 jusqu’à vendredi, lorsque WordPress a livré les versions 6.9.5 et 7.0.2 et a activé les mises à jour forcées via un système de mise à jour automatique.
wp2shell Il y a deux bogues au lieu d’un, qui contiennent désormais tous deux des identifiants CVE. CVE-2026-63030 Le routage des packages API REST est trompeur ; CVE-2026-60137 est l’injection SQL dans le noyau de WordPress. Enchaînés, ils reçoivent des requêtes anonymes jusqu’à l’exécution du code.
Depuis vendredi, le mécanisme complet a été publié et une preuve de concept fonctionnelle est apparue sur GitHub.
Adam Kues d’Assetnote, l’unité de gestion de la surface d’attaque de Searchlight Cyber, a découvert le bug de routage des paquets et l’a signalé via WordPress. Application HackerOne.
Le écrirepublié sous le nom wp2shellL’attaque “n’a aucune condition préalable et peut être utilisée par un utilisateur anonyme”, a-t-il déclaré. L’injection SQL a été signalée séparément par TF1T, dtro et haongo.
Le projecteur possède toujours son propre texte technique, et les propriétaires l’ont signalé aux testeurs. wp2shell.com. Cela ne sert à rien de s’accrocher maintenant : le patch est ouvert au public et d’autres chercheurs le lisent.
Il n’y a pas deux bugs qui surviennent dans le même scénario, et c’est la clé pour savoir qui obtient quoi. L’injection remonte à 6,8. L’aspect de confusion des routes de paquets, qui transforme les injections restreintes en RCE non vérifiés, n’est disponible que depuis la version 6.9.
Par conséquent, les États sont divisés en :
- 6.8.0 à 6.8.5 : injection SQL uniquement, corrigé dans 6.8.6
- 6.9.0 à 6.9.4 : réseau RCE complet configuré pour 6.9.5
- 7.0.0 à 7.0.1 : circuit RCE complet réglé sur 7.0.2
La version 7.1 bêta2 inclut les deux correctifs. Le site 6.8 ne peut pas être utilisé par RCE via cette chaîne, donc la 6.8.6 corrige l’injection toute seule.
WordPress ne précise pas si le push forcé atteindra les sites dont les mises à jour automatiques sont désactivées. Au lieu de penser que vous avez atterri, vérifiez ce que vous exécutez réellement.
Un article de Searchlight estime que plus de 500 millions de sites Web utilisent WordPress. Ce nombre est basé sur l’installation totale, et non sur le package exposé : la chaîne RCE ne provenait que du 6.9, qui a été expédié. 2 décembre 2025. Ainsi, chaque site concerné par le chemin d’exécution du code exécute une version datant de moins de huit mois, sans aucune indication de son âge.
Il y a deux défauts mineurs dans la chaîne. L’injection réside dans le paramètre author__not_in de WP_Query : elle donne une chaîne au lieu d’un tableau, ignore la vérification qui attend un tableau et transmet la valeur brute à la requête.
Accéder à ce paramètre sans se connecter est le travail du point de terminaison du package. Le routage /wp-json/batch/v1 de WordPress exécute plusieurs sous-requêtes en un seul appel et les suit dans deux tableaux parallèles ; Une seule erreur de sous-requête supprime les tableaux un par un, de sorte que la requête s’exécute sous un autre gestionnaire de requêtes.
Ce leurre contourne la liste blanche du point final et permet à l’attaquant de répondre à des requêtes non sécurisées et vulnérables. Le point final du colis a été envoyé depuis 5,6 en 2020; l’erreur qui en abuse est nouvelle en 6.9.
Les points doivent être lus attentivement. WordPress en est propriétaire donner des conseils Le réseau RCE est classé critique. Son enregistrement CVE lui donne un score de 7,5, seulement un score élevé, et il mesure uniquement l’impact de l’accès aux données, et non la perte d’intégrité et de disponibilité que vous attendez de l’exécution de code. L’injection dépend d’un score de 9,1 et supérieur à Critique.
Ce que tout le monde appelle l’erreur RCE critique est numériquement la moindre des deux, puisque le score récompense l’accès direct à la base de données d’injection, et la confusion de route elle-même est considérée comme une erreur d’analyse. Suivez les deux CVE, pas l’étiquette sur les deux.
Une condition réduit le rayon de l’explosion. Le chemin d’exécution du code ne fonctionne que lorsque le site n’exécute pas de cache d’objets persistant Flare nuageuseUne règle WAF est envoyée avec la clarification. L’installation par défaut ne dispose pas d’un tel cache, l’exposition d’installation par défaut est donc définie.
Un site utilisant WordPress comme cache d’objets persistant avec Redis ou Memcached peut être hors piste, mais c’est un effet secondaire, pas un correctif, et ne s’applique pas à l’injection SQL.
En fournissant un identifiant CVE, les scanners peuvent enfin le voir : InsightVM et Nexpose débarquent le 20 juillet dans Rapid7. Il n’existe pas dans CISA. Catalogue KEVil nécessite des exploits confirmés et n’a pas été signalé au 18 juillet.
Le crowdsourcing WordPress est désormais une industrie. Avant la panne de son serveur en juin, l’un des plugins de cache était buggé WP-SHELLSTORM D’après le décompte, plus de 17 000 sites ont été consultés à l’aide d’un bug corrigé et divulgué publiquement qui ne fonctionnait que sur les paramètres autres que ceux par défaut. Il est public, corrigé et fonctionne avec les paramètres par défaut.
Si vous ne pouvez pas effectuer la mise à niveau aujourd’hui
Chacune des mesures d’atténuation proposées par Searchlight vise à éloigner les appelants anonymes de la fin du peloton. Tous sont en attente jusqu’à la mise à niveau, et tous peuvent interrompre les intégrations légitimes :
- Bloquez à la fois /wp-json/batch/v1 et rest_route=/batch/v1 sur WAF. Une règle qui couvre uniquement la route /wp-json laisse la route de la chaîne de requête ouverte, les deux doivent donc disparaître. Cloudflare affirme que le WAF qu’il gère bloque désormais le réseau de sites derrière lui.
- Désactiver l’API WP RESTil supprime la vente en gros d’accès REST non authentifiés.
- Publie un shortcode Searchlight qui rejette les requêtes anonymes /package/v1 sur rest_pre_dispatch.
Le noyau de WordPress est open source et la version nommée fichiers modifiés. Ce sera toujours suffisant. Projecteur enregistré ; En une journée, d’autres chercheurs ont lu le correctif, publié le mécanisme et mis l’exploit sur GitHub, et c’est exactement ainsi qu’il a été révélé.
Vous ne pouvez pas soumettre un correctif sans soumettre une carte des bogues. Le seul levier qui reste est la rapidité avec laquelle le correctif peut atteindre les sites avant que quiconque ne le lise, et WordPress a tiré fort vendredi.
L’utilisation est désormais ouverte au public et des mises à jour sont en cours. Les statistiques de version de WordPress vous montreront combien de sites ont reçu le correctif ; Une analyse du trafic par rapport au package/v1 montrera combien d’attaquants sont venus le chercher. Quelle courbe est la plus raide décide de la manière dont elle est mémorisée.
