WordPress : une faille critique permet l’exécution de code à distance sans authentification

Une vulnérabilité critique identifiée sous le score CVSS de 9,2 touche le cœur de WordPress. Découverte par le chercheur en sécurité Robert Ressl, cette brèche permet à un individu non authentifié de forcer l’inclusion de fichiers arbitraires sur le serveur hôte et d’aboutir, sous certaines conditions d’hébergement, à une exécution complète de code PHP à distance (RCE). L’équipe de sécurité du CMS a déployé en urgence des correctifs couvrant les versions actuelles ainsi que les anciennes branches encore maintenues depuis 2016.

La faille se situe dans la fonction native get_page_template() du moteur de rendu des thèmes. En temps normal, cette fonction restreint le chargement des modèles aux seuls répertoires du thème actif. Une manipulation habile des paramètres de requête contourne ce filtrage et amène l’application à lire et interpréter un fichier PHP situé n’importe où sur l’espace d’hébergement, dès lors que le processus web (comme www-data ou PHP-FPM) dispose des droits de lecture dessus.

Mécanisme technique de la vulnérabilité CVE-2026-87902

L’attaque n’exige aucun compte utilisateur, aucun privilège éditeur ni la moindre interaction de la part d’un administrateur. Le vecteur d’attaque exploite une faiblesse dans la résolution des chemins de modèles lorsque l’arborescence du thème actif contient des sous-dossiers spécifiques, notamment des structures préfixées par page-.

La bascule d’une simple inclusion locale (LFI) vers une exécution de code arbitraire dépend de deux facteurs techniques identifiés par les équipes de Patchstack :

  • La présence d’un fichier manipulable par l’attaquant sur le système de fichiers (fichiers temporaires d’upload, sessions PHP non nettoyées, logs web accessibles ou caches applicatifs).
  • L’activation de la directive PHP obsolète register_argc_argv dans la configuration du serveur web, qui facilite l’injection directe d’arguments d’exécution via l’URL.

Dès que ces critères s’alignent, un attaquant injecte une commande système, dépose un webshell persistant dans /wp-content/uploads/ et prend la main sur la base de données MySQL ainsi que sur les fichiers de configuration wp-config.php.

Versions WordPress affectées et branches rétroportées

Toutes les moutures comprises entre WordPress 4.7.0 et WordPress 7.1.1 sont directement exposées à cette vulnérabilité. Les équipes de sécurité ont rétroporté le correctif sur l’ensemble des branches encore prises en charge :

À lire aussi :  WordPress introduira bientôt la mise à jour automatique des thèmes et plugins
Branche WordPressVersion vulnérableVersion corrigée à installer
Branche 7.17.1.0 et 7.1.17.1.2
Branche 7.07.0.0 à 7.0.57.0.6
Branche 6.96.9.0 à 6.9.86.9.9
Branche 6.86.8.0 à 6.8.96.8.10
Branche 6.76.7.0 à 6.7.86.7.9
Branche 6.66.6.0 à 6.6.86.6.9
Branche 4.7 à 6.5Versions antérieuresDernier sous-patch respectif

Les installations configurées avec les mises à jour automatiques mineures actives appliquent ce correctif en arrière-plan sans intervention manuelle. Les parcs sous gestion manuelle, les environnements conteneurisés et les sites dont les processus cron internes sont désactivés restent en revanche ouverts aux scans automatisés tant que la mise à niveau n’est pas déclenchée.

Actions d’urgence pour sécuriser votre serveur

Pour les administrateurs disposant d’un accès en ligne de commande, la mise à jour immédiate via WP-CLI s’exécute avec la directive suivante :

wp core update --version=7.1.2

Pour les versions plus anciennes, remplacez le numéro par la révision de maintenance correspondante à votre branche active.

Si une mise à jour immédiate du cœur applicatif s’avère impossible en raison de dépendances d’extensions spécifiques, appliquez ces trois contre-mesures au niveau du serveur web :

  1. Désactiver register_argc_argv : dans votre fichier php.ini ou votre pool PHP-FPM, positionnez impérativement register_argc_argv = Off puis rechargez le service PHP.
  2. Filtrer les paramètres d’URL suspects au niveau du pare-feu (WAF) : bloquez via Cloudflare, ModSecurity ou Nginx les requêtes HTTP contenant des séquences de traversée de répertoires (../, ..\) ou ciblant directement des templates inhabituels dans la chaîne de requête.
  3. Contrôler les droits d’écriture : assurez-vous que les répertoires /wp-content/uploads/ ne permettent pas l’exécution directe de scripts PHP en configurant une règle d’interdiction stricte dans votre virtual host Nginx ou votre fichier .htaccess.

Vérifiez ensuite les journaux d’accès HTTP (access.log) afin de repérer d’éventuelles requêtes répétées vers index.phpcombinant des arguments de modèles personnalisés, signes précurseurs de tests de vulnérabilité automatisés.

- Publicité -