Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/langz337/cve-2026-87902
ReconnaissanceScanners de VulnérabilitésScanners de Vulnérabilités WebExploitationExploitation d'Applications WebCollecte d'InformationsSécurité WebTests d'IntrusionOutil d'Accès à Distance
GitHublangz337/cve-2026-87902

CVE-2026-87902

1il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

Analyse WordPress Core 4.7.0–7.1.1 pour la LFI non authentifiée CVE-2026-87902 via un traversal pagename doublement encodé, avec escalade RCE optionnelle via PEAR config-create et analyse de masse.

Voir le dépôt
Partager

CVE-2026-87902 — Inclusion de fichier local non authentifiée dans le cœur de WordPress (LFI → RCE conditionnelle)

Outil d'exploitation de traversée de répertoires pour get_page_template() / locate_template() du cœur de WordPress

Réservé aux tests de sécurité autorisés. Tout accès non autorisé à des systèmes informatiques est illégal.


Aperçu de la vulnérabilité

ÉlémentDétails
ID CVECVE-2026-87902
ID GHSAGHSA-7hp8-65ch-5whp
Type de vulnérabilitéCWE-98 — Contrôle inapproprié du nom de fichier pour Include/Require
CVSS v3.18.1 (Élevé) / CVSS 4.0 : 9.2 (Critique)
Composant affectéCœur de WordPress
Versions affectées4.7.0 à 7.1.1 (toutes les branches)
Versions corrigées7.1.2 (et rétroportages jusqu'à 4.7.37)
Authentification requiseAucune (non authentifiée)
Vecteur d'attaqueUne seule requête GET
Découverte parRobert Ressl (via le programme HackerOne de WordPress)
Date de divulgation22 septembre 2026
Exploitée dans la natureOui — répertoriée dans le catalogue CISA KEV

CVE-2026-87902 est une vulnérabilité de traversée de répertoires et d'inclusion de fichier local (LFI) non authentifiée dans le cœur de WordPress qui affecte toutes les versions de WordPress publiées depuis 2016 (4.7.0 à 7.1.1). Un attaquant n'a besoin d'aucun compte ni d'aucune authentification. En forgeant un paramètre de requête pagename malveillant, l'attaquant peut amener le mécanisme de résolution de modèle de page de WordPress à inclure n'importe quel fichier .php lisible en dehors du répertoire du thème actif. Dans certaines conditions serveur (PHP register_argc_argv = On et un fichier pearcmd.php lisible), la vulnérabilité peut être escaladée en exécution de code à distance (RCE).


Versions affectées

BrancheVersion corrigée
4.7.x4.7.37
5.0.x5.0.29
5.3.x5.3.25
5.9.x5.9.18
6.0.x6.0.16
6.6.x6.6.9
6.9.x6.9.9
7.0.x7.0.6
7.1.x7.1.2

Détails techniques

Cause racine

La vulnérabilité réside dans get_page_template() dans wp-includes/template.php. Lorsque la variable de requête pagename est présente, la fonction construit page-{$pagename}.php mais omet d'appeler validate_file() sur cette valeur pour détecter une traversée de répertoires. Le nom de fichier candidat est ensuite transmis à locate_template(), qui le concatène avec le chemin du répertoire du thème et se contente de vérifier file_exists() — elle ne vérifie pas que le chemin résolu reste à l'intérieur du répertoire du thème. Un nom de modèle contenant ../ peut donc se résoudre en un fichier PHP lisible en dehors du thème actif, puis être inclus et exécuté.

Chaîne d'appels

GET /?page_id=&pagename= → WP_Query resolves page_id, matches a published page (avoids 404) → get_page_template() urldecode()s pagename, builds page-{$pagename}.php → locate_template() concatenates candidate to theme directory, resolves via file_exists() → template-loader executes realpath() + include

Contournement par double encodage

WordPress applique sanitize_title_for_query() à pagename, qui remplace les points littéraux (.) par des traits d'union (-) pour bloquer la traversée. Cette fonction opère sur une entrée déjà décodée une fois et ne décode pas récursivement. L'attaquant envoie %252e%252e%252f (../ doublement encodé) :

  1. Le serveur web décode une fois : %252e → %2e, %252f → %2f
  2. sanitize_title_for_query() voit %2e%2e%2f (aucun point littéral) et le laisse passer
  3. get_page_template() appelle ensuite urldecode() en interne : %2e%2e%2f → ../
  4. La séquence de traversée devient effective

Conditions préalables à l'exploitation

  1. Le thème actif (parent ou enfant) contient un répertoire de premier niveau commençant par page- (par exemple, page-templates/).
  2. Au moins une page publiée existe dont l'ID peut être fourni comme page_id.
  3. Le fichier cible doit se terminer par .php (WordPress ajoute l'extension).

Note sur les hôtes Windows : Win32 normalise .. de manière lexicale, de sorte que la traversée peut fonctionner même si le répertoire page- n'existe pas. Sous Linux, ce répertoire doit réellement exister.

Escalade RCE via PEAR

Conditions :

  • PHP register_argc_argv est défini sur On
  • Un fichier pearcmd.php lisible existe sur le serveur

L'attaquant inclut pearcmd.php via LFI et abuse de sa commande config-create pour écrire un fichier PHP sur le serveur, puis inclut à nouveau ce fichier via LFI pour exécuter des commandes arbitraires.


Origine et divulgation de la CVE

Découvreur

CVE-2026-87902 a été découverte et signalée par Robert Ressl, un chercheur en sécurité basé en Suisse.

Processus de divulgation

Signalée via le programme HackerOne de WordPress en juillet 2026. L'équipe de sécurité de WordPress a coordonné le correctif et l'a publié en même temps que WordPress 7.1.2 le 22 septembre 2026.

Chronologie de la divulgation

DateÉvénement
Juillet 2026Robert Ressl signale la vulnérabilité via le programme HackerOne de WordPress
22 septembre 2026WordPress 7.1.2 publié avec le correctif ; l'avis de sécurité est publié
22 septembre 2026Correctifs de sécurité rétroportés publiés pour les branches 7.0 à 4.7
23 septembre 2026Les attaquants commencent à sonder les sites vulnérables
25 septembre 2026La CISA ajoute CVE-2026-87902 au catalogue KEV

Fonctionnalités de l'outil

FonctionnalitéDescription
Empreinte de versionIdentifie la version de WordPress via la balise meta generator, le flux RSS, OPML, readme.html, le paramètre ?ver= des ressources
Verdict intelligent sur la versionUtilise une correspondance des versions corrigées pour déterminer si la cible se situe dans la plage affectée
Découverte du thèmeExtrait le slug du thème actif, détecte le thème parent, découvre les répertoires page-*
Découverte des ID de pageTrouve les ID de page valides via l'API REST, la classe de corps page-id-, les liens courts
Validation de l'oracle LFIUtilise des fichiers sûrs comme wp-links-opml.php et wp-trackback.php comme oracles avec des contrôles négatifs
Traversée doublement encodéeEncode automatiquement en double pourcentage / et . afin de contourner sanitize_title_for_query()
Exploitation RCE via PEAREssaie les chemins PEAR courants, écrit et exécute des fichiers marqueurs via config-create
Analyse de masseAnalyse concurrente multithread de listes de cibles
Sortie des résultatsPersiste les résultats dans vuln_lfi.txt et vuln_lfitorce.txt

Prérequis

  • Python 3.10+
  • Bibliothèque requests

pip install requests


Utilisation

Démarrage

python3 CVE-2026-87902.py

Menu interactif :

[1] Analyse unique LFI [2] Analyse unique LFI + RCE [3] Analyse de masse LFI [4] Analyse de masse LFI + RCE [5] Quitter

Analyse d'une cible unique (LFI uniquement)

Choisissez [1], saisissez l'URL cible :

url > https://target.example.com

Analyse d'une cible unique (LFI + RCE)

Choisissez [2], saisissez l'URL et la commande (par défaut id) :

url > https://target.example.com cmd > id

Analyse de masse

Choisissez [3] ou [4], saisissez le fichier contenant les URL cibles (une par ligne, # pour les commentaires) :

file > targets.txt

Fichiers de sortie

FichierContenu
vuln_lfi.txtCibles LFI confirmées
vuln_lfitorce.txtCibles RCE réussies

Configuration

TIMEOUT = 8 # Délai d'expiration des requêtes (secondes) THREADS = 200 # Threads concurrents pour l'analyse de masse USE_ALL_ORACLES = False # Utiliser tous les oracles (plus précis mais plus lent)


Télécharger l’outil