部落格 發布於 AIA: 2026年7月6日

Amazon Q 自動載入 MCP 設定,讓複製一份專案也可能造成雲端憑證風險

Wiz 證明舊版 Amazon Q for VS Code(AWS 的 AI 程式開發助理擴充套件)語言伺服器未經同意就會自動載入工作區裡的 MCP(Model Context Protocol,讓 AI 助理連接外部工具的協定)設定。惡意專案因此能定義一個會執行命令的 MCP server,沿用開發者環境中的權限,再把 AWS 身分資料傳到攻擊者控制的端點。AWS 已在後續版本修補 CVE-2026-12957。

Command InjectionCredential TheftTool AuthorizationMCP SecurityAI Coding IDE
9 項對應的 AIDEFEND 防禦手法
來源: Remote Code Execution in Amazon Q for VS Code 
作者: Maor Dokhanian
原文發布: 2026年6月26日

威脅分析

  • 攻擊從專案信任開始。 開發者打開含有 .amazonq/mcp.json 的惡意工作區後,專案檔案就不只是原始碼,也成了 AI 助理控制面的設定來源。
  • 受影響的用戶端會自動載入設定。 Amazon Q 沒有先檢查工作區是否可信,也沒有取得使用者同意,就載入 MCP server 的設定,讓專案指定的命令在本機執行。
  • MCP 程序會拿到開發者的機敏環境資訊。 概念驗證(PoC)會執行 AWS CLI 身分查詢,再把結果送到攻擊者控制的端點。
  • 風險不只是一個命令。 只要助理程序碰得到本機 secrets、雲端工作階段、原始碼副本或開發者可連入的網路,都可能被攻擊者拿來擴大後續行動。
  • 最重要的修正是把設定檔簽章驗證和使用者同意納入啟動流程。 助理用戶端應先驗證設定檔簽章並完成安全檢查;凡是會啟動 shell 或沿用機敏環境權限的設定,都必須先阻擋,取得使用者明確核准後才能執行。

適用的 9 項 AIDEFEND 防禦手法

AID-H-021.001
Client-Side Configuration Enforcement
極高
用戶端必須先檢查本機工作區的 MCP 設定是否符合結構定義與政策;如果啟動命令會執行危險操作,就直接擋下。
AID-H-021.002
Runtime Integrity Enforcement (Signed Configurations)
極高
啟動時的設定簽章檢查直接對應自動載入風險:用戶端啟動工具前,應拒絕未簽章、遭本機覆寫或已發生偏移的助理設定。
AID-H-034.001
MCP Server Deployment Profile, Transport & Exposure Baseline
MCP server 的部署基準要求標準輸入輸出(stdio)啟動流程只處理協定資料,不應沿用不必要的環境權限,也要避免由工作區提供的 MCP server 透過 shell 啟動。
AID-H-018.003
High-Impact Independent Validation & Approval Gate
只要儲存庫要新增可執行命令,或新增能接觸雲端憑證的工具伺服器,高影響動作驗證就應要求明確核准。
AID-E-001.001
Root & Long-Lived Credential Object Eviction
如果惡意 MCP 命令可能讀到開發者的長效 AWS access key、API key、client secret 或簽章金鑰,就要撤銷或輪替那一筆權威憑證物件。這是事故期間的 eviction 動作,不是一般的用戶端 secret 儲存控制。
AID-I-001.004
Sandbox Network Egress Restrictions
沙箱預設拒絕對外連線,可阻止惡意 MCP 啟動命令把身分資料送到攻擊者控制的端點。
AID-H-003.010
Deployed AI Software Vulnerability Remediation Lifecycle
盤點所有受影響的 Amazon Q Developer client 與 language server 版本,透過受管理的端點部署環分階段推出修正版,並驗證已無任何可自動執行儲存庫所提供 MCP 啟動命令的弱點版本。這才是軟體修補流程的直接 owner。
AID-E-001.002
Issued Token, Authentication Session & Lease Revocation
如果繼承的開發者環境裡含有已簽發的 AWS session token 或其他驗證工作階段,就要在所有會接受它們的服務上,撤銷事件範圍內的完整 token 與 session population。停用工作負載 principal 是另一個 owner,不能由 session eviction 推定完成。
AID-H-025.001
Pre-Execution Static Analysis & Dangerous Construct Blocking
危險程式結構偵測可在助理啟動前,標出會呼叫 shell、curl、AWS CLI、讀取 token 或執行類似危險命令的 MCP 設定。

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

  • 升級 Amazon Q Developer for VS Code,並確認其語言伺服器為 1.65.0 或更新的版本。
  • 搜尋工作區裡的 .amazonq/mcp.json,檢查是否定義了透過命令或 shell 啟動的 MCP server。
  • 禁止助理用戶端自動載入未簽章的工作區設定;新增 MCP server 時必須取得明確核准。
  • 讓 AI 程式開發工具只能取得必要的環境變數,不要提供長期 AWS key,並限制對外連線。
  • 曾使用受影響版本的 Amazon Q 開啟不可信專案者,應立即撤銷並輪替相關雲端憑證。

結論

這個案例清楚說明,AI 程式開發助理需要用戶端控制面保護。助理一旦把專案檔案當成可執行設定,開啟專案就不再只是檢視原始碼。設定檔簽章、明確同意、縮小可沿用的環境權限並限制對外連線,才能避免複製一份專案變成本機執行命令。