AIDEFEND in Action AIA-0111 實證研究 發布於 AIA: 2026年10月26日

OpenCode:MCP OAuth 網址流入 Windows Shell,觸發命令執行

Pillar Security 在 Windows 與 WSL 上測試 AI 程式開發 agent OpenCode,展示遠端 MCP OAuth 驗證過程中的程式碼執行。伺服器控制的 HTTPS 授權網址流入不安全的瀏覽器啟動命令,遭 PowerShell 當成命令內容解讀,不需要模型服從提示詞。OpenCode 1.18.33 已修補受影響的啟動相依套件;研究指出本案未獲配 CVE。

Remote Code ExecutionClient SecuritySupply Chain DefenseAI Coding AgentMCP Security
2 項對應的 AIDEFEND 防禦手法

威脅分析

  • 伺服器回應流入 Shell:OAuth 提供網址,用戶端啟動瀏覽器,不安全的輔助程式卻讓 PowerShell 解讀攻擊者文字。整條路徑不必先影響模型。
  • 協定檢查不等於參數安全:合法 HTTPS 網址仍可能攜帶 shell 語法。只因伺服器設定時可信就持續信任,也會漏掉同一端點日後遭入侵的情況。
  • 修補要涵蓋真正使用中的用戶端:研究記錄了沒有 CVE 的修補版本。完整安裝盤點與相依套件驗證,比等待傳統漏洞資訊來源發出通知更重要。

適用的 2 項 AIDEFEND 防禦手法

AID-H-003.010
Deployed AI Software Vulnerability Remediation Lifecycle
極高
直接盤點所有 Windows/WSL OpenCode 安裝,將受影響版本替換為 1.18.33 或受支援的更新修補版。確認已安裝用戶端實際使用的啟動相依套件與程序,包含可攜版及內嵌副本。在隔離環境讓帶有無害 shell 特殊字元的網址走完整 OAuth/瀏覽器交接,確認沒有額外命令副作用。本案沒有 CVE,僅依賴 CVE 掃描不能證明已完整涵蓋。
AID-H-028.004
Client Response Parsing, Rendering & Execution Surface Hardening
中
用戶端開發者可在任何瀏覽器/啟動元件呼叫或預先載入前,要求使用者透過可信介面,一次性確認完整、標準化的 OAuth 目的網址。「不得默默開啟」的規則必須涵蓋這條原生 OAuth 啟動路徑,不能只處理 MCP 網址徵詢;指引範例需要接上對應用戶端元件。這能阻擋未核准的觸發並限制來源,但使用者已同意的 HTTPS 網址,仍可能含有 shell 語法,因此仍須修補啟動器;取得同意不會讓 PowerShell 輸入自動變安全。

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

  • 將 Windows/WSL OpenCode 更新到受支援修補版,驗證所有安裝副本,不只確認 CI 使用的套件。
  • 用戶端完成驗證前,停用不必要的遠端 MCP 連線。受管理確認代理可以阻擋未審查導覽,但不能清理已獲准的惡意網址。
  • 在隔離機器以無害測試資料走完整 OAuth 交接,觀察子程序。HTTPS 驗證或 WSL 沙箱,都不能單獨證明 Windows 啟動路徑安全。

結論

AIDEFEND  將關鍵防禦對應到已部署軟體的修補,明確確認則是效果有限的補充控制。用戶端必須避免伺服器回傳網址被 Shell 解讀;在模型動作前就執行的啟動器漏洞,無法靠模型護欄修好。

最後更新: