
CLI di sola lettura per verificare se un sito WordPress è esposto a WP2Shell (CVE-2026-63030 / CVE-2026-60137)
Uno strumento da riga di comando che verifica se un sito WordPress è esposto a WP2Shell (CVE-2026-63030 e CVE-2026-60137). Legge la versione di WordPress e la superficie dell'API REST tramite richieste di sola lettura e fornisce un verdetto. Non sfrutta alcuna vulnerabilità.
[!WARNING] Solo per test autorizzati. Usalo su siti di tua proprietà o per i quali hai il permesso scritto di verifica. L'autore (
DanSec) non si assume alcuna responsabilità per usi impropri o danni.
WP2Shell combina una SQL injection (CVE-2026-60137) con una falla nel processore batch REST
(CVE-2026-63030) tramite l'endpoint /wp-json/batch/v1, consentendo l'esecuzione remota di codice
non autenticata su un'installazione WordPress predefinita. Entrambe le CVE sono nel catalogo Known Exploited di CISA.
| Ramo | Vulnerabile | Corretto in |
|---|---|---|
| 6.9.x | dalla 6.9.0 alla 6.9.4 | 6.9.5 |
| 7.0.x | dalla 7.0.0 alla 7.0.1 | 7.0.2 |
| 7.1 e successive | non interessate | n/d |
Richiede Python 3.8+.
pip install -r requirements.txt
requests e rich sono richiesti. sublist3r è opzionale (enumerazione dei sottodomini).
Per un'enumerazione più ampia, installa subfinder
(un binario Go, non pip) e passa --subfinder.
# Verifica un singolo host
python wpScanner.py example.com --passive
# Enumera i sottodomini di un dominio radice e verifica ciascuno
python wpScanner.py example.com --subfinder --threads 8
I risultati vengono anche scritti in CSV. Quando le fonti sulla versione sono in disaccordo, lo strumento classifica in base alla
più bassa per evitare un falso all-clear. Un controllo remoto non può rilevare una patch backportata che ha lasciato
invariata la stringa della versione, quindi sugli host che controlli, wp core version è la verità di riferimento.
Aggiorna il core alla 6.9.5, 7.0.2 o 7.1+ (wp core update). Se non puoi ancora applicare la patch, blocca
/wp-json/batch/v1 sul firewall e limita l'accesso REST anonimo.
Fornito solo per uso autorizzato e difensivo. Sei responsabile di avere il permesso di verificare qualsiasi host a cui lo punti.
| Opzione | Descrizione | Predefinito |
|---|
-o, --output | File di output CSV | WP2Shell_output.csv |
--passive | Verifica solo l'host indicato, salta l'enumerazione | disattivato |
--subfinder | Aggiunge subfinder come fonte di sottodomini | disattivato |
--threads | Worker concorrenti | 1 |
--retries | Tentativi per host | 1 |
--rate-limit | Richieste massime/sec (mono-thread, 0 = nessun limite) | 0 |
| Verdetto | Significato |
|---|
VULNERABLE | Versione interessata e endpoint batch raggiungibile. |
LIKELY_MITIGATED | Versione interessata, ma l'endpoint batch sembra bloccato o REST è disabilitato. |
PATCHED | Versione corretta, o precedente alle release interessate. |
VERSION_UNKNOWN | WordPress trovato, ma la versione non è leggibile. |
NOT_WORDPRESS | Nessuna impronta WordPress. |
ERROR | Irraggiungibile o errore di rete. |