一个点,就够了。Johann Rehberger 披露的 CVE-2026-103572 把 Visual Studio Copilot 和 SQL Server Management Studio 同时拖进远程代码执行的射程——攻击者只需在文件名末尾多加一个点,就能绕过路径校验,把恶意内容写进 .mcp. 和 settings.VisualStudio. 这类本该受保护的配置文件。
问题不在内存破坏,也不在反序列化,而是最不起眼的那类逻辑缺陷:路径校验不统一。Windows 有个老怪癖,文件名结尾的点和空格会被文件系统悄悄剥掉,可校验代码盯着的是原始字符串。白名单对着"evil.mcp."说这不在保护范围,落到磁盘上却变成了"evil.mcp",正好覆盖受保护配置。配置一被改写,Copilot 和 SSMS 下次启动就会顺着里面的指令执行命令。
真正麻烦的是攻击面的性质。MCP 配置定义工具与命令,settings 文件决定 IDE 行为,这两类文件天然就是代码执行的入口。Rehberger 此前在 AI 开发工具上演示过一条又一条攻击链,这次不过把入口从提示注入换成了文件系统语义。修补也不该是往黑名单里再加一条:所有路径比较都得放到规范化之后,配置写入必须二次确认。在开发者每天开着的工具里,一个点的容错空间都不该存在。

