Indirect prompt injection 是 prompt injection 最危險的變體,因為使用者根本不知道攻擊正在發生。使用者只是叫 agent「總結這個 PDF」、「檢查我的 inbox」、「browse 這個 URL」。Agent 抓內容、處理、照著裡面藏的指令做。結果:agent 變成在對使用者做事,而不是為使用者做事。
真實案例不是理論。2024 年對 Microsoft Copilot 的攻擊,用 markdown 圖片參照透過 DNS 查詢外送對話紀錄。2025 年有 demonstration 顯示,被投毒的 npm README 可以讓 agent 安裝後門套件。2026 年,microsoft/agent-governance-toolkit issue #1981(Semantic Kernel CVE-2026-26030)記錄了 SK plugin 描述裡的 indirect injection 如何鏈結到 RCE。
攻擊面跨多種模態。文字:README 檔案、markdown 註解、JSON 工具回應。網頁:HTML 屬性、隱藏的 CSS pseudo-element、JS 渲染的內容。多模態:截圖中的文字、OCR 出來的圖片內容、alt-text 描述。跨通道:一封 email 告訴 agent 去讀某個 Notion 頁;Notion 頁告訴 agent 去執行某個工具。鏈條的每一個環節都是新的注入機會。
防禦需要在每個 retrieval 邊界做 content-source tagging。PanGuard Guard 標記每一個 byte 的來源(使用者輸入 vs 工具回傳 vs retrieved 文件),並在 retrieved 內容進入模型 context 之前先跑 ATR 規則。Context-exfiltration 類別的 33 條 ATR 規則專門針對工具輸出與 retrieved 文件裡的 indirect-injection 模式。