- 研究員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等擴展屬性的修改權限。



