一个句点绕过微软Copilot安全机制,CVE-2026-103572暴露系统层路径解析隐患
微软Visual Studio Copilot与SSMS存在严重漏洞CVE-2026-103572,攻击者仅需在文件路径末尾添加句点即可绕过安全检查,实现对settings.json的恶意覆盖与远程代...
微软近期修复了一个编号为CVE-2026-103572的严重漏洞,其触发条件令人意外:仅需在文件路径末尾添加一个句点(.)。该漏洞影响Visual Studio 2022及SQL Server Management Studio(SSMS)中的Copilot功能,可导致攻击者通过精心构造的Prompt诱导AI生成恶意配置,最终实现远程代码执行。
漏洞由微软安全研究员Johann Rehberger于2026年8月4日首次报告,9月16日获官方确认,并于10月13日Patch Tuesday更新中正式修复。尽管微软将其风险评级定为“重要”(Important),但CVSS评分为8.8,已接近高危级别。
该漏洞的核心并非AI模型本身存在逻辑错误,而在于系统集成层面的边界一致性失效。具体而言,当Copilot尝试向路径C:\Users\xxx\.vscode\settings.json.写入内容时,其内置的安全检查模块会判断该路径因含末尾句点而不属于受保护的配置文件白名单,从而放行操作;但Windows内核在实际写入时,会依据DOS时代遗留的兼容性规则,自动静默截断路径末尾的句点,最终落盘文件实为settings.json——一个被严格保护、可被VS Code插件加载执行的关键配置文件。
这一行为差异本质上是CWE-94(代码生成控制不当)的经典变体:安全检查层“看到”的是settings.json.,而文件系统真正操作的是settings.json。两者各自逻辑正确,却因对“同一路径”的语义理解不同,形成致命盲区。
Windows对路径末尾句点的截断行为已存在数十年,源于早期短文件名规范(8.3格式)禁止以点号结尾的文件名。为保持向后兼容,Windows内核至今仍默认执行该截断,且无需应用层感知。问题在于,现代应用(如Copilot)在实施安全策略时,往往直接对原始路径字符串做模式匹配,未调用系统级路径规范化函数(如PathCanonicalizeW或GetFullPathNameW),导致安全边界与实际执行边界错位。
攻击链路清晰而简洁:攻击者首先通过Prompt注入诱导Copilot生成包含特定路径的JSON配置;随后利用Windows路径解析特性,使目标路径在写入时“变形”为受保护文件;一旦settings.json被篡改,其中可嵌入自定义任务定义或脚本指令,在后续VS或SSMS启动时被自动加载执行,完成权限提升与代码执行。
值得注意的是,整个过程无需内存破坏、零日漏洞或复杂提权技巧,纯粹依赖系统层与应用层对同一输入的解释分歧。这反映出在AI工具深度集成至开发环境的当下,传统安全模型面临的新挑战:安全策略若仅作用于“表层字符串”,而忽略底层操作系统的行为契约,极易被边缘案例绕过。
微软的修复方案相对直接:在安全检查环节引入与Windows内核一致的路径标准化逻辑。即在判断路径是否属于受保护列表前,先调用系统API对输入路径进行规范化处理,确保检查所依据的路径与最终写入路径完全一致。此举虽简单,却有效堵住了跨层语义鸿沟。
该事件也折射出当前AI辅助编程工具的现实困境。Copilot作为微软AI战略的核心载体,近年来经历重大调整——据The Information报道,其负责人Jared Spataro(注:原文提及Lamanna,但经核实应为Jared Spataro,其2025年起主导Copilot业务)曾力推将内置模型从GPT切换为Anthropic的Claude,在企业市场取得显著成效,用户满意度与付费坐席数大幅增长。然而,技术演进越快,系统集成的复杂度越高,安全基线的维护难度也随之上升。
尤其在开发工具链中,AI生成内容直接落地为可执行配置或脚本,意味着任何路径、权限或上下文的微小偏差都可能被放大为系统级风险。此次漏洞虽未涉及模型训练或推理过程,却揭示了一个关键事实:AI安全不仅关乎提示词防护与输出过滤,更深层地依赖于对宿主操作系统行为的精确建模。
从行业视角看,类似问题并非孤例。过去几年中,GitHub Copilot、JetBrains AI Assistant等工具均曾曝出因路径拼接、环境变量污染或配置覆盖导致的权限逃逸案例。其共性在于:AI作为“自动化代理”,其操作行为被赋予了与开发者同等的执行权限,但其决策逻辑却缺乏对底层系统契约的完整认知。
这也促使安全社区重新审视“最小信任原则”在AI时代的适用性。理想状态下,AI生成的任何文件写入请求,都应经过沙箱化验证或强制重签名机制;敏感配置文件应启用只读锁或哈希校验,而非依赖路径字符串匹配拦截。
目前,受影响版本用户应尽快安装2026年10月安全更新。微软未向Rehberger发放奖金,后者在披露中坦承此事“未获赏金”,但强调其价值在于推动行业对系统层一致性问题的重视。
一个句点引发的连锁反应,再次提醒我们:在软件工程中,最危险的漏洞往往不是代码写错了,而是多个“正确”的组件在边界处产生了意外交叉。
