CVE-2026-20127 Defensive Companion 是一款卓越的企业级浏览器扩展,专为主动威胁情报与防御性分析而设计。该工具封装了有关 Cisco Catalyst SD-WAN 控制器(vSmart)中身份验证绕过漏洞的权威技术研究。通过提供离线、高度本地化的情报层,它使安全运营中心(SOC)与防御研究人员能够快速分析数据包结构、追踪身份验证流程,并即时提取失陷指标(IOC),而无需将活跃的调查数据暴露给外部网络。
Cisco Catalyst SD-WAN 架构依赖 vdaemon 服务在边缘设备与控制器之间建立并维护控制平面的 DTLS 连接。该基础漏洞(CVE-2026-20127)利用了 DTLS 握手序列期间的状态机验证失败,明确影响通常与 vSmart 控制流量关联的端口(例如 12346、52521)。该漏洞允许未授权攻击者绕过 X.509 证书验证,并在内部控制器注册表中伪造已认证状态。
本项目的主要目标是将原始漏洞利用代码库整合为结构化、兼具教育性与防御性的资产。研究旨在解构 vbond_proc_challenge_ack_ack() 身份验证绕过机制,并通过一系列交互式可视化进行呈现。这将使网络安全专业人员能够理解漏洞的确切机制、实施稳健的检测逻辑,并在企业 SD-WAN 部署中应用全面的缓解策略。
该仓库采用分层结构,将情报数据、核心 UI 可视化和智能搜索逻辑相分离,遵循 Chrome Manifest V3 架构约束。
src/knowledge):包含恰好 17 个分段 JSON 域,代表从原始漏洞利用研究中解析出的情报。src/services):承载离线 NLP KnowledgeEngine,负责意图检测与语义检索。src/components、src/sidepanel):基于 React 的 UI,用于渲染动态数据包可视化和分析师仪表盘。深度分析证实,该漏洞位于 vdaemon(版本 20.12.5)中地址 0x38AB7 处的 vbond_proc_challenge_ack_ack() 函数内。核心缺陷在于完全缺乏对消息正文中 verify_status 字节的服务端验证。当未认证的对等端发送带有非零 verify_status 的 CHALLENGE_ACK_ACK 数据包时,vdaemon 会隐式信任该断言,并将 1 写入对等端的认证状态内存 *(BYTE*)(a2+70) = 1。
控制平面的合法 DTLS 握手流程如下:
msg_type=8(CHALLENGE)向客户端发起质询。msg_type=9(CHALLENGE_ACK)响应,提供所需的密码学证明。msg_type=10(CHALLENGE_ACK_ACK)结束握手。被利用的协议流程刻意跳过第 3 步。攻击者拦截 CHALLENGE 后,立即以伪造的 CHALLENGE_ACK_ACK(msg_type=10)进行响应。由于 vbond_proc_msg() 中的认证门禁将 msg_type=10 排除在预认证过滤之外,该数据包得以到达存在漏洞的处理程序,从而破坏状态机。
安全团队必须主动搜寻以下异常,以检测正在进行的利用尝试:
control-connection-state-change 事件进行告警,其中 peer-vmanage-system-ip 为 0.0.0.0,且数秒内随即转换为 down 状态。vmanage-admin 用户通过 TCP 端口 830(NETCONF)意外接受 SSH 公钥。vdaemon_peer_ssl_snapshot_info 中的不匹配项表明本地证书与对端证书差异显著,且与标准配置方式不符。防御者必须实施以下修复策略:
20.12.6.1 或更高版本,该版本在 vbond_proc_challenge_ack_ack() 中强制执行严格的状态机验证。vmanage-admin 账户的 authorized_keys 文件实施严格的修改告警机制。该扩展实现了一个定制的离线知识引擎,为从仓库中提取的 17 个特定域建立索引。该引擎完全在浏览器本地运行,采用多阶段自然语言处理(NLP)流水线:
Detection 域)。该解决方案高度依赖基于 Manifest V3 的分布式异步架构:
chrome.storage.local 持久化扩展状态与设置。@vitejs/plugin-react)该扩展针对快速部署与无缝的分析师工作流进行了高度优化:
Set<string>),将运行时搜索延迟降至亚毫秒级。background.js Service Worker 与体积较大的 sidepanel.js UI 包分离,以节省内存占用。安全性与数据隐私是本工具的基石:
manifest.json 仅请求严格必要的权限(activeTab、sidePanel、storage)。unsafe-eval 与远程脚本执行。npm install
npm run build
npm run dev
dist/ 目录。chrome://extensions/。dist/ 目录。ext/
├── public/ # Static assets and manifest.json
├── src/
│ ├── background/ # Service worker scripts
│ ├── components/ # React components (ProtocolViewer, PacketExplorer, Chat)
│ ├── content/ # DOM scanning and active threat highlighting scripts
│ ├── knowledge/ # 17 segmented JSON domains containing extracted CVE data
│ ├── options/ # Extension settings and Report Generator logic
│ ├── services/ # Offline KnowledgeEngine NLP implementation
│ └── sidepanel/ # Primary persistent workspace for analysts
├── package.json # Node.js dependencies and script definitions
├── tsconfig.json # TypeScript configuration for strict typing
└── vite.config.ts # Vite build configuration