Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
wp2shell-cve-2026-63030-root-cause — Analisi indipendente delle cause profonde e proof-of-concept per SQL injection non autenticata a RCE in WordPress (CVE-2026-63030 + CVE-2026-60137), con laboratorio Docker e documentazione dettagliata della catena di exploit. | Kitploit
Strumenti/GitHubGitHub/tcyph3r/wp2shell-cve-2026-63030-root-cause
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubtcyph3r/wp2shell-cve-2026-63030-root-cause

wp2shell-cve-2026-63030-root-cause

Analisi indipendente delle cause profonde e proof-of-concept per SQL injection non autenticata a RCE in WordPress (CVE-2026-63030 + CVE-2026-60137), con laboratorio Docker e documentazione dettagliata della catena di exploit.

Vedi Repository
1 mese faNon ancora revisionato

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

wp2shell (CVE-2026-63030 + CVE-2026-60137): Analisi Indipendente della Causa Principale

WordPress core ha divulgato wp2shell il 2026-07-17 come una RCE critica e non autenticata che colpisce installazioni predefinite (WordPress 6.9.0-6.9.4, 7.0.0-7.0.1, zero plugin richiesti). Lo scopritore originale (Searchlight Cyber) ha trattenuto i dettagli tecnici al momento della divulgazione. Questo repository documenta un'analisi indipendente della causa principale derivata interamente dal diffing del codice sorgente di WordPress core tra le versioni vulnerabile (6.9.4) e corretta (6.9.5), più verifica dal vivo in un laboratorio locale.

Crediti: la riproduzione qui segue la forma della richiesta da sergiointel/wp2shell-poc, confermata byte per byte e verificata incrociata con il diff reale della patch.

Contenuti

  • root_cause_analysis.md - rapporto completo: i due bug concatenati, il codice vulnerabile esatto, il diff della patch, la catena di exploit e la verifica dal vivo prima/dopo contro una vera istanza WP 6.9.4.
  • poc_upstream.py - copia invariata del PoC originale di sergiointel (solo SQLi).
  • poc_upstream_rce.py - PoC di sergiointel aggiornato circa 22 ore dopo la divulgazione, aggiungendo escalation dei privilegi non autenticata e RCE senza craccare alcuna credenziale. Vedi sezione 7 di .
root_cause_analysis.md
  • poc_extract.py / poc_extract2.py - una variante ottimizzata (SLEEP() più grande, soglia di temporizzazione più alta, soffitto di ricerca caratteri più lungo) necessaria per ottenere un segnale affidabile in un laboratorio Dockerizzato/proxy dove il SLEEP(0.15) predefinito dello script upstream era perso nel jitter di rete.
  • docker-compose.yml - avvia lo stesso laboratorio WordPress 6.9.4 + MariaDB utilizzato per la verifica.
  • payload.json, response.json, response_patched.json - una richiesta artigianale che replica la struttura del PoC e le risposte grezze del server, prima e dopo l'applicazione dei file della patch 6.9.5.
  • Catena end-to-end, confermata

    Un secondo PoC scritto indipendentemente (github.com/Icex0/wp2shell-poc) è stato revisionato integralmente e descrive lo stesso meccanismo di causa principale in modo indipendente, corroborando l'analisi di seguito. Utilizzando la sua estrazione SQLi blind basata sul contenuto (booleana, non basata sulla temporizzazione), l'hash delle credenziali dell'amministratore di questo laboratorio è stato recuperato con accuratezza del 100% e, utilizzando quella credenziale nota, è stata dimostrata dal vivo una catena completa SQLi-to-RCE: SQL injection fino all'estrazione delle credenziali, upload autenticato di webshell tramite plugin fino all'esecuzione di codice come www-data. Vedi sezione 6 di root_cause_analysis.md.

    Quel percorso di craccatura delle credenziali è reale ma non è l'unico. Il PoC di sergiointel è stato successivamente aggiornato per ottenere RCE non autenticata senza alcuna craccatura di credenziali, utilizzando UNION SELECT per forgiare righe di database fittizie che il codice di Customizer/nav-menu/oEmbed-cache di WordPress stesso considera abbastanza attendibili da permettere a una richiesta di creazione utente non autenticata di avere successo. Vedi sezione 7 di root_cause_analysis.md. La sola SQL injection non autenticata è sufficiente per una RCE completa su un'installazione predefinita.

    Riepilogo delle scoperte

    CVE-2026-63030 (Confusione di route batch REST, CWE-436): WP_REST_Server::serve_batch_request_v1() aggiunge a un array $matches[] con un semplice push, ma salta l'aggiunta quando il percorso di una sotto-richiesta non riesce a essere analizzato (ad es. una voce "http://:" deliberatamente malformata). Quel singolo salto desincronizza $matches[] da $requests[] di un indice per ogni voce successiva. Al momento dell'invio, $matches[$i] non corrisponde più a $requests[$i], quindi il codice finisce per eseguire i dati di una richiesta sotto un diverso gestore corrispondente della route rispetto a quello per cui è stata effettivamente convalidata.

    CVE-2026-60137 (SQL injection): WP_Query::get_posts() eseguiva la sanitizzazione absint() su author__not_in solo all'interno di un ramo is_array(). Un valore stringa scalare saltava completamente la sanitizzazione e veniva concatenato direttamente in ... post_author NOT IN ($value).

    Concatenati: il bug di confusione delle route permette a un attaccante di far sì che una richiesta dichiarata contro /wp/v2/categories (che non riconosce author_exclude, quindi non viene mai sanitizzata) venga effettivamente inviata attraverso il controller posts (che legge author_exclude e lo inoltra in WP_Query). Nessuna autenticazione richiesta.

    Sulla rivendicazione RCE: confermato dal vivo che la blind SQL injection non autenticata funziona e può esfiltrare contenuti arbitrari del database, inclusi wp_users.user_pass. Un singolo passaggio di estrazione basato sulla temporizzazione in un laboratorio virtualizzato presentava un rumore di bit significativo (~94% di accuratezza per carattere nei test qui); un oracolo basato sul contenuto (booleano) non condivideva quella modalità di fallimento e recuperava lo stesso campo con accuratezza del 100%. La RCE è stata confermata tramite due percorsi distinti: craccare un hash di password recuperato (condizionato alla forza della password) e una catena di gadget di escalation dei privilegi non autenticata che utilizza righe di database forgiate tramite UNION che il codice di Customizer/nav-menu/oEmbed-cache di WordPress stesso considera affidabili (incondizionata, nessun compromesso di credenziali richiesto). Vedi sezione 7 di root_cause_analysis.md.

    Riproduzione

    root@kitploit:~
    docker compose up -d
    # wait for WordPress install wizard to be reachable on :8890, then complete setup
    
    HTTP_PROXY=http://127.0.0.1:8080 HTTPS_PROXY=http://127.0.0.1:8080 \
      python3 poc_extract2.py http://localhost:8890 "SELECT DATABASE()"
    

    Vedi root_cause_analysis.md per il rapporto tecnico completo.

    Divulgazione Responsabile

    WordPress ha pubblicato correzioni ufficiali: 6.9.5 e 7.0.2 (7.1 Beta 2 per il ramo beta), rilasciate il 2026-07-17. Aggiorna immediatamente se esegui una versione interessata. Questo repository è pubblicato per scopi difensivi ed educativi dopo che la patch era già pubblica. Esegui uno qualsiasi dei codici qui solo su sistemi di tua proprietà o per cui sei esplicitamente autorizzato a testare.

    Scarica lo strumento