CDPwn : cinq failles CDP chez Cisco, une exploitée
Un seul paquet forgé, depuis le port voisin. En février 2020, Armis a révélé CDPwn : cinq failles dans la façon dont les équipements Cisco lisent les messages du protocole CDP (Cisco Discovery Protocol), dont quatre mènent à une exécution de code.
L'attaquant n'a besoin d'aucun compte, seulement d'une place dans le même domaine de diffusion que l'équipement. En octobre 2020, Cisco a reçu des signalements de tentatives d'exploitation de l'une d'elles sur le terrain.
Le dossier officiel
Cisco a publié cinq avis le 5 février 2020, en remerciant Armis. CVE-2020-3118 sur IOS XR et CVE-2020-3119 sur NX-OS : un dépassement de pile, puis du code avec les privilèges d'administration. CVE-2020-3111 sur les téléphones IP Cisco : du code en root. CVE-2020-3110 sur les caméras IP Video Surveillance série 8000 : une exécution de code. Le NVD note les quatre 8,8.
La cinquième, CVE-2020-3120, épuise la mémoire et fait redémarrer les équipements sous FXOS, IOS XR ou NX-OS ; le NVD la note 6,5. Cisco indique que les failles d'IOS XR et de NX-OS ne touchent ni Cisco IOS ni IOS XE.
À quel point est-ce facile ?
CDP est un protocole de niveau 2 : Cisco précise que l'attaquant doit se trouver dans le même domaine de diffusion que l'équipement. Aucun compte n'est nécessaire.
Les réglages par défaut décident de l'exposition. Sur NX-OS, CDP est actif par défaut, globalement et sur chaque interface. Sur IOS XR, il est désactivé par défaut. Sur la plupart des modèles de téléphones IP Cisco, il est actif.
Cisco a mis à jour l'avis IOS XR le 20 octobre 2020 après des signalements de tentatives d'exploitation de CVE-2020-3118, et la CISA l'a ajoutée à son catalogue des vulnérabilités exploitées le 3 novembre 2021. Les quatre autres n'y figurent pas.
Le principe de fonctionnement
Un équipement traite les messages CDP qui arrivent sur ses ports, et en envoyer un ne demande aucun identifiant. Dans les versions vulnérables, l'analyseur ne validait pas correctement certains champs du message.
Sur IOS XR, les chaînes de caractères de ces champs étaient mal traitées ; sur NX-OS, un champ débordait de la pile. Dans les deux cas, un message forgé pouvait exécuter du code sur l'équipement, ou le faire redémarrer.
L'impact
Du code avec les privilèges d'administration sur un routeur IOS XR ou un switch Nexus, du code en root sur un téléphone de bureau, une exécution de code sur une caméra, ou un redémarrage qui retire l'équipement du réseau.
Et un switch ou un routeur est ce sur quoi les autres segments s'appuient : du code qui s'y exécute se trouve dans chaque VLAN que l'équipement transporte.
Comment fermer la porte
Mettez à jour : Cisco ne propose aucun contournement. Parmi les versions corrigées figurent IOS XR 6.6.3 et 7.0.2, NX-OS 7.0(3)I7(8) et 9.3(2) sur les Nexus 3000 et 9000, le micrologiciel 12.7(1) sur les téléphones 7800 et 8800, et la 1.0.7 sur les caméras.
Là où CDP ne sert pas, Cisco indique que le désactiver globalement ferme complètement le vecteur d'attaque, et le désactiver par interface réduit la surface d'attaque : no cdp sur IOS XR, no cdp enable sur NX-OS. Les téléphones s'appuient sur CDP pour leur VLAN voix : là, la réponse est le micrologiciel.
Ce que NacTrack montre
NacTrack collecte CDP et LLDP sur chaque équipement en SSH : il montre où CDP tourne et ce que chaque port voit en face. Il relève les versions et les configurations sur vos équipements, et les confronte aux avis publiés.
Sources
Sources : avis Cisco du 5 février 2020 (cisco-sa-20200205-iosxr-cdp-rce, nxos-cdp-rce, voip-phones-rce-dos, ipcameras-rce-dos, fxnxos-iosxr-cdp-dos), Armis, NVD, CISA KEV.
Formation défensive : l'attaque est montrée dans son principe seulement, sans étape d'exploitation, outil ni charge utile. Les sorties de commande et les configurations sont des exemples ; vérifiez votre plateforme et votre version dans la documentation du constructeur.
Savoir où votre réseau est exposé
NacTrack relève les versions et les configurations sur vos équipements, et les confronte aux avis publiés.
