Visual Studio Copilot 的远程代码执行漏洞已在 2026 年 10 月 13 日被微软修复:安全研究人员 Johann Rehberger 当天公开了编号 CVE-2026-103572 的完整技术分析,微软将该漏洞定级为 Important、CVSS 评分 8.8,并在 10 月的补丁星期二发布了修复。受影响的不只 Visual Studio,还包括共用同一 Copilot 组件的 SQL Server Management Studio(SSMS),连 Visual Studio 2022 等较旧版本也在影响范围内;按微软安全公告,17.14 与 18.10 两条版本线对应的修复版本为 17.14.42 与 18.10.4。
问题藏在一个两边共用的组件里
漏洞位于共享动态库 Microsoft.VisualStudio.Copilot.Core.dll 中,SSMS 本身就建立在与 Visual Studio 相同的外壳与代码之上,所以一处缺陷同时打穿两个企业级开发工具。Rehberger 在 2026 年 8 月 4 日向微软报告了这条绕过路径,微软 9 月 16 日确认漏洞成立。
校验比的是字符串,Windows 认的是另一个文件名
Copilot 本来有一份受保护文件清单,禁止智能体改写自己的设置与 MCP 配置。校验逻辑比对的是文件名字符串,但 Windows 有个老规则:文件名末尾的点会被 Win32 层忽略。于是把目标写成 .mcp.json. 或 settings.VisualStudio.json.,字符串对不上清单、校验放行,真正落盘时尾随的点又被去掉,写到的还是那个受保护文件。拿到写权限后,攻击链并不复杂:改 .mcp.json 加一个恶意 MCP 服务器并把它设为启用,IDE 就会替你把任意命令跑起来;在 Visual Studio 里还可以改设置中的 ripgrep 路径,让 Copilot 每次搜索时启动攻击者指定的程序。
真正的入口,是藏在内容里的提示注入
开发者本人不会去写这种文件名,攻击需要一个传话的人:当 Copilot 处理不可信的文件、仓库内容或 MCP 服务器返回的数据时,藏在里面的间接提示注入可以诱导它执行上述写入。Rehberger 的演示正是沿这条链走通的,最终在演示机上弹出了计算器;他还发现了路径穿越等其他绕过方式。微软对该漏洞的利用可能性评估为较低,目前没有已确认的在野利用记录,公开的概念验证则已经出现。
修复补在规范化上,更新别拖
Rehberger 分析修复补丁后指出,微软加入了路径规范化处理:先把文件名归一化、去掉尾随的点并解析相对路径,再做受保护清单校验,尾随点和一部分路径穿越变体因此失效。这件事给使用编码智能体的团队两条很具体的提醒:第一,把 Visual Studio 与 SSMS 尽快更新到修复版本,企业内网分发也别例外;第二,把智能体会读到的仓库文件、外部数据都当成潜在的提示注入面——针对智能体的安全控制,必须在假设智能体本身可能被操纵的前提下仍然成立。