返回首頁

AI 代理安全

NanoClaw 的 MCP 核准卡隱藏執行參數,代理可把一次同意轉成持久化執行設定

新登錄的 CVE-2026-17434 指向 NanoClaw 2.0.64 以前的授權缺口:管理員看到的 MCP 伺服器核准卡,未完整顯示實際套用的參數與環境變數。修補已改為呈現完整負載、遮蔽祕密值並限制輸入大小,但受影響部署仍須確認版本及既有設定。

Kkralev · CC BY-SA 4.0 · Image source
zh-Hant

NanoClaw 用容器隔離代理,並要求管理員核准代理提出的 `add_mcp_server` 自我修改請求;然而新公開的 CVE-2026-17434 顯示,這道人工閘門曾未與真正執行的設定綁定。舊版核准卡只呈現 MCP 伺服器的名稱及命令,代理提交的 `args` 與 `env` 雖然沒有顯示,仍會被主機保存到資料庫,之後寫入代理的 `container.json`。

這使遭提示注入或已被控制的代理可提出看似無害的 `node` 伺服器,再透過隱藏參數加入 `-e` 程式,或用 `NODE_OPTIONS` 預載本機檔案。攻擊仍需要管理員按下核准,並非無互動遠端執行;但核准者同意的畫面與實際生效內容不同,因此人工確認無法形成可靠的安全邊界,而且一次同意可留下持久化執行設定。

上游修補讓卡片逐欄呈現名稱、命令、參數及環境變數,將換行、雙向文字與零寬字元轉成可見跳脫序列,並對疑似祕密值只顯示長度和 SHA-256 指紋。程式也限制最多 32 個參數、32 個環境變數、16 KB 負載及 1,500 bytes 的卡片內容,避免通訊平台截斷尾端欄位;送卡失敗時則刪除待核准紀錄。

工程團隊除升級外,應稽核既有 MCP 設定中的命令列與環境變數,並把「人看見的負載雜湊等於實際執行負載」納入代理核准流程。CVE 資料庫將問題列為中等風險,但專案議題採用較高的自評分數;公開資料尚未證明已有真實攻擊,版本對應亦應以供應商後續安全公告為準。

來源

  1. CVE-2026-17434
  2. NanoClaw add_mcp_server approval-smuggling report
  3. NanoClaw MCP approval-card fix