- 研究员Johann Rehberger在BlueHat Asia 2026公开CVE-2026-65669,一个Microsoft评为「严重」的SQL Server Copilot提权漏洞
- 攻击者可透过间接提示注入,配合Copilot的正规表达式防护缺陷,绕过「只读模式」并执行任意T/SQL指令
- 完整攻击链可将一个db_owner层级的低权限用户,提升至服务器级sysadmin角色
本文目录
研究员在BlueHat Asia 2026披露SQL Copilot提权漏洞
研究员Johann Rehberger在新加坡举行的BlueHat Asia 2026发表演讲,内容涵盖他对Microsoft SQL Server Management Studio(SSMS)内置Copilot功能的研究。据其博客文章指出,这项研究涉及CVE-2026-65669,一个被Microsoft评为「严重」的SQL Server提权漏洞(Elevation of Privilege Vulnerability)。
Microsoft已就此发布修补程序,Rehberger提醒用户确保安装版本已更新。
Copilot以连接用户的权限执行指令
Rehberger发现,Copilot在SSMS中执行时,使用的是当时已连接查询窗口的用户权限。换言之,若用户以sysadmin身分连接,Copilot亦会以该sysadmin连接执行SQL指令。
其中一个工具ReadFromDatabase可读取数据库内容,理论上受「只读模式」限制,系统提示明确指示模型不应执行会改变数据库或服务器状态的查询。但Rehberger指出,系统提示指令并非真正的安全边界。
正规表达式防护可被绕过
透过逆向工程分析相关程序代码,Rehberger发现只读模式的执行依赖LocalSqlExecutionAccessChecker类别中一个以正规表达式(regex)为基础的分类器。他指出,黑名单式(blocklist)的安全控制本质脆弱,往往存在多种绕过方式。
例如,使用DECLARE @p sysname='sp_who'; EXEC @p这类写法即可绕过封锁清单,从而呼叫任意储存程序。配合sp_executesql,攻击者可执行动态构建的任意SQL查询,包括CREATE、INSERT、UPDATE、DELETE及DROP等写入操作。
间接提示注入可令数据外泄并夺取系统管理员权限
Rehberger示范了透过xp_dirtree及专门用于验证备份文件的RestoreVerifyBackupFile工具,将数据库内容逐行外泄至第三方服务器。
更关键的是,SQL Copilot支持以AGENTS.md及CONSTITUTION.md形式储存的「数据库指示」,这些指示以扩展属性(extended property)形式透过sp_addextendedproperty储存程序加入,并会被Copilot自动读入上下文。Rehberger指出,修改这些元数据所需的权限,可以低于日后使用Copilot的用户权限,令低权限用户能够影响高权限用户的AI代理行为。
在最终示范中,一名拥有db_owner权限的用户植入恶意的「数据库宪法」,Copilot读入后,经间接提示注入触发只读模式绕过,以受害者的SQL连接执行任意T/SQL指令,最终将攻击者加入sysadmin角色,完成由db_owner提升至系统管理员的完整攻击链。
Rehberger吁将只读防护视为安全不变量
Rehberger总结指出,AI代理的只读防护必须是真正的安全不变量(如权限控制),而非仅靠模型指令或脆弱的SQL分类器。他亦建议,若Copilot以高权限数据库连接运作,代理控制一旦失效,影响可波及整个系统。
他并指出,持久化指示如AGENTS.md及CONSTITUTION.md为数据库权限模型引入新的信任关系,扩展属性不再只是元数据,而是AI助手会遵循的指令。此事件涉及提示注入及AI代理的安全风险,与早前MCP Python SDK的OAuth漏洞同属AI代理被滥用的案例。
防守方现在要做什么
- 将SSMS及其Copilot功能更新至Microsoft发布的最新修补版本
- 避免以sysadmin或高权限账户连接查询窗口后使用Copilot,改以最低必要权限连接
- 利用Microsoft提供的管理控制选项,包括停用Copilot、设定群组原则或限制执行上下文
- 审视数据库内AGENTS.md及CONSTITUTION.md等扩展属性,确认哪些用户有权限修改这些元数据
- 对会被Copilot读取的内容(如文件、数据表注解)进行来源审查,以防间接提示注入
常见问题
CVE-2026-65669影响哪些产品?
此漏洞影响Microsoft SQL Server Management Studio(SSMS)内置的Copilot功能,Microsoft已将其评为「严重」等级的提权漏洞。
这个漏洞如何被利用?
攻击者可透过在Copilot会读取的内容中植入恶意指示(间接提示注入),配合绕过以正规表达式为基础的只读模式防护,执行任意T/SQL指令,最终可将低权限数据库用户提升至sysadmin角色。
什么是间接提示注入?
间接提示注入是指攻击者将恶意指令隐藏在AI代理会读取的内容(例如文件、数据库注解或元数据)之中,当另一名用户的代理读取该内容时,便会被诱导执行攻击者的指令。
这个漏洞是否已被用于实际攻击?
文章未提及此漏洞已被用于实际攻击,内容为研究员在BlueHat Asia 2026会议上的研究披露。
管理员现在应该怎样做?
应将SSMS更新至最新修补版本,避免以高权限账户连接后使用Copilot,并检视AGENTS.md与CONSTITUTION.md等扩展属性的修改权限。



