實證研究 發布於 AIA: 2026年8月25日

CoSnitch:Copilot 自動執行外傳與長期記憶投毒是兩條不同路徑

CoSnitch 是 Varonis 對 Microsoft Copilot 網頁版(一般使用者可在瀏覽器中使用的 AI 助理)的研究,涵蓋兩種彼此獨立的攻擊。第一條在 copilot.microsoft.com 連結中結合 ?q= 與未見於公開文件的 autorun=1,讓已登入的工作階段未經確認就執行內嵌的提示詞(prompt),再透過 Copilot 的 URL 擷取能力將已連接資料送出。第二條則利用惡意網頁中的隱藏指令,讓摘要工作呼叫 memory.add,把攻擊者指令寫入長期記憶。Microsoft 已於 8 月 18 日修補;CVE-2026-24301 是這項公開資安漏洞的識別編號。

Prompt InjectionData ExfiltrationModel PoisoningSink EnforcementAI Copilots
9 項對應的 AIDEFEND 防禦手法
來源: CoSnitch: One Click to Leak Your Secrets or Poison Copilot's Memory 
作者: Lior Adar (Varonis Threat Labs)
原文發布: 2026年8月18日

威脅分析

  • 自動執行分支只需要使用者點一次連結。受害者開啟合法的 copilot.microsoft.com URL,其中 ?q= 帶有攻擊者的提示詞,並加入未見於公開文件的 autorun=1。瀏覽器原有的登入狀態,讓這項工作直接在受害者已登入的工作階段中執行。
  • 提示詞沒有經過新的確認。它要求 Copilot 從已連接的 Gmail、Drive、Calendar 與聊天記錄取出資料,把選定內容編入 URL,再使用 Copilot 本身的 URL 擷取能力送出請求。
  • 記憶分支從另一種工作開始。使用者請 Copilot 摘要攻擊者控制的網頁,頁面隱藏文字接著要求系統呼叫 memory.add。這條路徑不需要使用特製的自動執行連結。
  • 遭投毒的紀錄會成為未來的提示詞內容。Copilot 可能在後續對話重新載入攻擊者指令。Varonis 表示,更改密碼、撤銷工作階段與重新註冊裝置都不會移除這筆記憶;只有明確刪除後才會消失。
  • 產品名稱必須精確區分。Varonis 把測試介面稱為 Microsoft Copilot Personal,Microsoft 的正式漏洞紀錄則把受影響服務列為 Copilot Web。本文採正式產品名稱,並保留研究中的名稱作為別名。
  • 供應商已修補所通報的漏洞。Microsoft 於 2026 年 8 月 18 日修補 CVE-2026-24301。NVD 記錄的 CVSS 為 8.8,需要使用者互動,且沒有已知實際利用;長期教訓是,自動執行提示詞與寫入記憶都必須成為明確的安全判斷。

適用的 9 項 AIDEFEND 防禦手法

AID-H-018.003
High-Impact Independent Validation & Approval Gate
極高
點擊連結與既有登入狀態,不能授權連結內嵌的工作。在存取已連接資料或對外擷取前,必須重新取得綁定確切提示詞、連接器、資料類別、連線目標與預定動作的核准。這會直接中斷自動執行分支。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
極高
把 Gmail、Drive、Calendar 與聊天記錄中的值標記為機敏資料,經過編碼後仍保留其機敏程度。Copilot 準備對 URL 發出擷取請求時,系統要阻擋這些資料被寫入攻擊者指定 URL 的參數;即使提示詞已執行且工具已被呼叫,仍可在請求送出前中斷外傳。
AID-I-004.004
Transactional Promotion Gates (Quarantine -> Trusted)
極高
從網頁產生的記憶候選項必須先進入隔離區;只有在審查確切內容雜湊值後,才能以一次完成的狀態轉換(atomic state transition)移入可信區。在移入前,該紀錄不能影響後續提示詞。這是最直接對應長期記憶分支的控制。
AID-H-002.002
Inference-Time Prompt & Input Validation
高
Web 請求介面應拒絕同時提供提示詞並自動執行的外部參數組合。如果 q 仍可由連結帶入,它的內容在使用者於已登入工作階段中檢視並送出前,都只能是不可執行的文字。
AID-H-018.004
Intent-Based Dynamic Capability Scoping
高
依可信且使用者可見的工作,產生短效的連接器與工具範圍。URL 帶入的提示詞不能把工作擴張到無關郵件、檔案、行事曆、聊天記錄或任意擷取目標位址。
AID-D-001.005
Recalled Memory Pre-Rehydration Scanning
高
每筆記憶在重新載入後續提示詞前都要再次掃描。如果內容企圖偽裝成高權限指令、要求呼叫工具,或與目前使用者工作衝突,就產生綁定確切儲存版本的偵測結果。這是供政策使用的偵測證據,不能取代寫入資格檢查。
AID-E-005
Compromised Durable Application Session & Agent State Teardown
高
確認記憶遭投毒後,只清除確認會重新載入攻擊者指令的特定對話記憶紀錄,並核對清除範圍與紀錄簽章,再以獨立方式驗證指定範圍內沒有殘留資料。更改密碼與撤銷工作階段不符合這項要求,因為長期記憶仍然存在。
AID-H-019.002
Secure HTML Rendering & Content Demotion
中
移除待摘要網頁中的可執行與嵌入式內容,只留下有大小限制的純文字,並保留不受信任來源標記。後續記憶政策因此仍能辨識這段文字不可信;不過,這項控制本身不會決定是否允許寫入記憶。
AID-M-002.004
Trust-Tiered Memory/KB Provenance & Write Eligibility Contract
中
每筆記憶寫入候選項都要記錄呼叫者、來源、證據、檢查結果、所屬記憶區域與資格判定,供後續判斷是否能從隔離區移入可信區。這份規格提供強制執行所需事實,但不會讓網頁隱藏文字自行變成可信內容。

身為資安防禦者,我們應該這麼做

  • 在消費端 Copilot Web 介面驗證 Microsoft 8 月 18 日的修正。使用隔離帳號測試特製 q 與 autorun 組合,確認使用者明確檢視並確認前,不會執行任何提示詞。
  • 盤點 Copilot 可用的所有連接器與對外擷取能力。提示詞讀取已連接資料或連向模型選擇的位址前,必須重新取得針對該次動作的核准。
  • 針對經過編碼、串接、轉換及嵌入 URL 的 Gmail、Drive、Calendar 與聊天記錄值,測試出口控制能否辨識這些機敏資料。
  • 把記憶寫入列為資安事件,記錄來源、呼叫者、內容雜湊值、檢查結果、所屬記憶區域與核准。網頁衍生的候選項預設先進入隔離區。
  • 每次重新載入記憶時再次掃描,並測試企圖偽裝成高權限指令的內容,在改寫或經儲存格式正規化後,是否仍會被當成有效指令。
  • 建立事故處理程序,刪除確切的遭投毒紀錄,並驗證沒有殘留的長期記憶內容。不能把密碼輪替、工作階段撤銷或裝置重新註冊當成記憶已移除的證據。

結論

CoSnitch 揭露讓瀏覽器中的網頁沿用 Copilot 權限的兩種不同方式。自動執行路徑把一個連結變成已登入工作階段中的自動工作;記憶路徑則把不受信任的網頁文字變成未來工作階段會重新使用的長期指令。

AIDEFEND  把 AID-H-018.003 與 AID-H-018.005 放在即時動作與資料出口。針對持續性,AID-M-002.004 定義哪些記憶有寫入資格,AID-I-004.004 讓不受信任紀錄先留在隔離區,AID-E-005 則在確認遭入侵後清除確切的長期狀態。兩條分支需要各自測試,也要分別保留結案證據。