Extension de navigateur hors ligne fournissant une analyse défensive et des conseils de détection pour CVE-2026-20127, avec visualisation de paquets, extraction d'IOC et stratégies d'atténuation pour Cisco SD-WAN.
Le Compagnon Défensif CVE-2026-20127 est une extension de navigateur haut de gamme, de qualité professionnelle, conçue pour le renseignement proactif sur les menaces et l'analyse défensive. Cet outil encapsule des recherches techniques faisant autorité concernant la vulnérabilité de contournement d'authentification dans le contrôleur Cisco Catalyst SD-WAN (vSmart). En offrant une couche de renseignement hors ligne, fortement localisée, il permet aux centres d'opérations de sécurité (SOC) et aux chercheurs défensifs d'analyser rapidement les structures de paquets, de tracer les flux d'authentification et d'extraire instantanément des indicateurs de compromission (IOC) sans exposer les données d'investigation actives à des réseaux externes.
L'architecture Cisco Catalyst SD-WAN repose sur le service vdaemon pour établir et maintenir les connexions DTLS du plan de contrôle entre les périphériques périphériques et le contrôleur. La vulnérabilité sous-jacente (CVE-2026-20127) exploite une défaillance dans la validation de la machine d'état lors de la séquence d'établissement de liaison DTLS, impactant explicitement les ports généralement associés au trafic de contrôle vSmart (par exemple, 12346, 52521). La vulnérabilité permet à des acteurs non autorisés de contourner la validation du certificat X.509 et de forger un état authentifié dans le registre interne du contrôleur.
L'objectif principal de ce projet est de synthétiser le référentiel d'exploit brut en un actif défensif structuré, éducatif et défensif. La recherche vise à déconstruire le contournement d'authentification vbond_proc_challenge_ack_ack() et à le présenter à travers une suite de visualisations interactives. Cela permet aux professionnels de la cybersécurité de comprendre les mécanismes exacts de la vulnérabilité, de mettre en œuvre une logique de détection robuste et d'appliquer des stratégies d'atténuation complètes sur les déploiements SD-WAN d'entreprise.
Le dépôt est structuré pour séparer les données de renseignement, la visualisation de l'interface utilisateur centrale et la logique de recherche intelligente, en respectant les contraintes architecturales de Chrome Manifest V3.
src/knowledge) : Contient exactement 17 domaines JSON segmentés représentant le renseignement analysé à partir de la recherche d'exploit d'origine.src/services) : Héberge le KnowledgeEngine NLP hors ligne, responsable de la détection d'intention et de la récupération sémantique.src/components, src/sidepanel) : Une interface utilisateur basée sur React qui rend les visualisations dynamiques de paquets et le tableau de bord de l'analyste.Une analyse approfondie confirme que la vulnérabilité réside dans la fonction vbond_proc_challenge_ack_ack(), située à l'adresse 0x38AB7 dans vdaemon (version 20.12.5). Le défaut principal est une absence totale de validation côté serveur de l'octet verify_status fourni dans le corps du message. Lorsqu'un pair non authentifié envoie un paquet CHALLENGE_ACK_ACK avec un verify_status non nul, le vdaemon approuve implicitement cette affirmation et écrit 1 dans la mémoire d'état d'authentification du pair *(BYTE*)(a2+70) = 1.
L'établissement de liaison DTLS légitime pour le plan de contrôle fonctionne comme suit :
msg_type=8 (CHALLENGE).msg_type=9 (CHALLENGE_ACK), fournissant les preuves cryptographiques requises.msg_type=10 (CHALLENGE_ACK_ACK).Le flux de protocole exploité ignore délibérément l'étape 3. L'attaquant intercepte le CHALLENGE et répond immédiatement avec un CHALLENGE_ACK_ACK falsifié (msg_type=10). Parce que la porte d'authentification dans vbond_proc_msg() exempte msg_type=10 du filtrage de pré-authentification, le paquet atteint le gestionnaire vulnérable et corrompt la machine d'état.
Les équipes de sécurité doivent activement rechercher les anomalies suivantes pour détecter les tentatives d'exploitation actives :
control-connection-state-change où peer-vmanage-system-ip est 0.0.0.0, immédiatement suivi d'une transition d'état vers down en quelques secondes.vmanage-admin sur le port TCP 830 (NETCONF) immédiatement après une instabilité DTLS.vdaemon_peer_ssl_snapshot_info indiquant que les certificats locaux et distants diffèrent significativement d'une manière non conforme à l'approvisionnement standard.Les défenseurs doivent mettre en œuvre les stratégies correctives suivantes :
20.12.6.1 ou ultérieure, qui applique une validation stricte de la machine d'état dans vbond_proc_challenge_ack_ack().authorized_keys pour le compte vmanage-admin.L'extension implémente un moteur de connaissances sur mesure et hors ligne qui indexe 17 domaines spécifiques extraits du dépôt. Le moteur fonctionne entièrement localement dans le navigateur, en utilisant un pipeline de traitement du langage naturel (NLP) en plusieurs étapes :
Detection).La solution repose fortement sur une architecture distribuée et asynchrone via Manifest V3 :
chrome.storage.local pour persister l'état et les paramètres de l'extension.@vitejs/plugin-react)L'extension est hautement optimisée pour un déploiement rapide et des workflows analystes transparents :
Set<string>) de manière synchrone au moment du chargement, réduisant la latence de recherche à l'exécution à des plages submillisecondes.background.js du bundle lourd sidepanel.js pour préserver l'empreinte mémoire.La sécurité et la confidentialité des données sont fondamentales pour cet outil :
manifest.json ne demande que les permissions strictement nécessaires (activeTab, sidePanel, storage).unsafe-eval et l'exécution de scripts distants.npm install
npm run build
npm run dev
dist/ optimisé.chrome://extensions/ dans votre navigateur.dist/.ext/
├── public/ # Actifs statiques et manifest.json
├── src/
│ ├── background/ # Scripts du service worker
│ ├── components/ # Composants React (ProtocolViewer, PacketExplorer, Chat)
│ ├── content/ # Scripts de scan DOM et de mise en évidence active des menaces
│ ├── knowledge/ # 17 domaines JSON segmentés contenant les données CVE extraites
│ ├── options/ # Paramètres de l'extension et logique du générateur de rapports
│ ├── services/ # Implémentation NLP hors ligne du KnowledgeEngine
│ └── sidepanel/ # Espace de travail persistant principal pour les analystes
├── package.json # Dépendances Node.js et définitions de scripts
├── tsconfig.json # Configuration TypeScript pour un typage strict
└── vite.config.ts # Configuration de build Vite