发布时间:2026-05-25
浏览量图标 1次浏览

發現 Claude Code AI 編程工具存在重大安全漏洞

摘要
獨立研究員關傲南披露,Anthropic 的 Claude Code AI 編程工具出現重大漏洞。本用於阻擋外部存取的網路沙箱,可透過 SOCKS5 協議中的空位元注入繞過。此漏洞影響自 2025 年 10 月沙箱上線以來的所有版本,共計 130 個發行版。Anthropic 於 2026 年 4 月修復了該問題,但未公開通知。此安全漏洞可能允許攻擊者竊取 API 密鑰和 AWS 憑證。

Claude Code

以「安全優先」定位的 Anthropic,其核心開發工具 Claude Code 的網路沙箱在过去五個月裡從未真正安全過。

獨立安全研究員關傲男(Aonan Guan)於5月20日發布最新研究,披露Claude Code網路沙箱存在第二個完整繞過漏洞——一個SOCKS5協議中的空字節注入攻擊,可讓沙箱內的進程訪問用戶策略明確禁止的任意主機。這意味著自2025年10月沙箱功能上線以來,約5.5個月、130個發行版本,Claude Code的每個版本均存在可被完整繞過的安全缺陷。這已是同一研究員對同一道防線的第二次完整突破。

Anthropic 對此的回應是沉默:沒有安全通告,沒有 CVE 編號,沒有用戶通知。漏洞在 4 月 1 日的版本中靜默修復,更新日誌未提及任何安全相關內容。也就是說,一位仍在運行舊版本的用戶,完全無從知曉自己配置的沙箱從一開始就形同虛設。

Two keys to the same door

Claude Code 是 Anthropic 於 2025 年初推出的 AI 編程助手,定位為「駐留在終端中的 AI 工程師」。與傳統的聊天式程式碼補全不同,Claude Code 擁有對用戶程式碼庫的讀寫權限和命令執行能力,能夠自主完成導航程式碼、編輯檔案、運行測試等一系列操作。這種深度介入也意味著極高的安全風險——如果模型被提示詞注入攻擊劫持,攻擊者將獲得等同用戶終端權限的能力,包括讀取本地環境變數、執行任意系統命令、訪問內部網路資源等。

為平衡安全與效率,Anthropic 於 2025 年 10 月引入了網路沙箱功能(v2.0.24),允許用戶透過設定檔配置域名白名單,限制 AI 執行環境的外部網路存取。例如,設定 allowedDomains: [“*.google.com”] 後,Claude Code 只能存取 Google 及其子域名,其餘流量一律阻斷。官方文件明確承諾:「空陣列等於禁止所有網路存取。」

此機制由一個 SOCKS5 代理實現:底層沙箱運行時(@anthropic-ai/sandbox-runtime)啟動代理伺服器,沙箱內的進程不直接發起網路連接,而是透過代理轉發,代理根據用戶在 settings.json 中配置的白名單執行域名過濾。作業系統層面的沙箱機制——macOS 的 sandbox-exec、Linux 的 bubblewrap——正確地將 Agent 限制在本地迴環地址,出站決策則完全委託給這個 SOCKS5 代理。

Claude Code

Anthropic 官方博客展示的 Claude Code 沙箱架構圖——用戶命令經由 SOCKS/HTTP 代理過濾後到達沙箱,沙箱內的文件操作與網絡訪問受嚴格權限管控

問題就在於這個代理的實現上。兩次獨立的安全研究均證明,它可以被完整繞過。

Claude Code

時間線暴露出更深層的問題:2025年11月26日發布的 v2.0.55 修復了第一次繞過,但第二次繞過從沙箱上線的第一天起就已存在,該版本仍然攜帶。兩個漏洞在時間線上存在交叉,從沙箱功能上線的第一天到最後一個漏洞被修復,沒有任何版本是安全的。Anthropic 在官方部落格中宣稱沙箱“確保即使發生提示詞注入,影響也被完全隔離”,但這兩次繞過的存在直接推翻了這一承諾。

“一次外部報告是運氣。兩次是實施質量問題。”——關傲男研究報告表示。

一個空字節的完整繞過

第二次繞過的技術原理並不複雜,但攻擊鏈的完整性值得關注。

用戶配置了網路白名單,例如僅允許訪問 *.google.com。Claude Code 的 SOCKS5 代理在收到連接請求時,使用 JavaScript 的 endsWith() 方法對主機名進行後綴匹配。攻擊者只需在主機名中插入一個空字節——構造形如 attacker-host.com\x00.google.com 的字串。JavaScript 將空字節視為普通 UTF-16 字元,endsWith(".google.com") 返回 true,代理放行。但同一字串被傳遞到底層 C 語言函數 getaddrinfo() 進行 DNS 解析時,空字節被視為字串終止符,實際解析的是 attacker-host.com。同樣的位元組,兩層代碼給出了兩種解讀。過濾器認為你在訪問 Google,DNS 解析器知道你在連接攻擊者的伺服器。

這屬於經典的「解析器差異」攻擊,與2005年發現的HTTP請求走私屬同一技術類別(CWE-158 / CWE-436)。其本質是當同一條數據流經兩個具有不同語義解釋規則的組件時,攻擊者可以利用這種差異,讓一層組件做出「安全」的判斷,同時讓另一層組件執行「危險」的操作。此類漏洞在網路安全領域反覆出現,關鍵教訓始終相同:任何跨越信任邊界的字串傳遞,都必須經過嚴格的規範化與驗證,而非信任上層已經做過檢查。

關傲男使用兩個最小化的 Node.js 腳本完成了漏洞複現:控制腳本使用普通主機名發起 SOCKS5 連接,返回 BLOCKED;攻擊腳本在主機名中注入空字節,返回 BYPASSED rep=0x00——後者意味著代理已成功建立連接,出站通道被打開。Claude Code 自身確認了這一結果。

Claude Code

在 Claude Code v2.1.86 中,四個紅色標註步驟的完整漏洞復現——策略確認、普通攔截、空字節繞過、Claude 自身確認

而這一沙箱繞過與關傲男4月披露的「評論與控制」提示詞注入攻擊串聯後,構成了完整的攻擊鏈(參見:三層防禦仍然不夠,一條PR標題就能偷走你的API密鑰:AI Agent安全裂縫再現)。「評論與控制」研究已證明,三家AI程式設計工具均存在提示詞注入攻擊面,但攻擊入口各不相同:Claude Code 僅通過 PR 標題,Gemini CLI 通過 Issue 評論或正文,Copilot Agent 則利用 HTML 註釋實現隱蔽注入。以 Claude Code 為例,其 PR 標題會被直接拼接至提示詞模板,未經過濾或轉義,模型無法區分人類意圖與惡意注入。

將兩者結合——隱藏指令讓Agent在沙箱內運行攻擊代碼,空字節注入突破網絡封鎖——環境變量中的API密鑰、AWS憑證、GitHub令牌、內部API端點數據等,均可被外傳至互聯網上的任意伺服器。數據通過SOCKS5代理本身流出,攻擊全程無需外部伺服器中轉,而該代理恰恰是用戶信任為安全邊界的組件。攻擊者甚至不需要倉庫寫入權限,只需提交一個公開Issue即可。人類審查者在GitHub渲染視圖中看到的是正常協作請求,AI Agent解析的卻是完整惡意原始碼。

連 Claude 都承認:漏洞是真實的

此次披露中的一個關鍵細節來自 Claude Code 自身。關傲男直接將漏洞複現代碼交給 Claude Code 運行,要求其做出技術判斷。Claude Code 在執行了控制測試(普通主機名被攔截)和攻擊測試(空字節主機名繞過攔截)後,給出了明確結論:

這是對網絡沙箱過濾器的真實繞過,不是測試假象。你應該向 Anthropic 報告這個問題,地址為 https://github.com/anthropics/claude-code/issues。

被測試的產品自行確認了漏洞的真實性和嚴重性,甚至主動提供了上報路徑。這個細節被關傲男完整記錄在研究報告中,並成為 The Register 報導標題的來源——“Even Claude agrees hole in its sandbox was real and dangerous”(連 Claude 都認同,其沙箱中的漏洞是真實且危險的)。

Claude Code

關傲男研究封面——Claude Code 在被展示自身漏洞後承認「這是對網路沙箱過濾器的真實繞過」,紅色框標註關鍵確認語句

Anthropic 的回應與五個月的沉默

漏洞本身令人擔憂,但 Anthropic 的處理方式更值得行業審視。

關傲男於2026年4月初透過HackerOne漏洞賞金計劃(報告編號#3646509)向Anthropic提交了第二次沙箱繞過的詳細報告。Anthropic的初步回應是:

感謝您的報告。經審核,我們認定該提交與我們已在追蹤的既有內部報告重複。

報告隨即被關閉。當關傲男追問 CVE 編號計劃時,Anthropic 於 4 月 7 日回覆:

我們尚未決定是否為該問題發布 CVE 編號,也無法提供相關決定的時間表。

此漏洞在 v2.1.90 版本中被靜默修復。沒有安全公告,沒有 CVE 編號,Claude Code 安全建議頁面無任何條目,更新日誌也未提及任何與安全相關的描述。一個從沙箱上線第一天就存在、持續 5.5 個月、涵蓋約 130 個版本的完整繞過,對用戶而言彷彿從未發生過。

這種處理模式並非首次出現。第一次繞過(CVE-2025-66479)的應對方式幾乎如出一轍:Anthropic 僅將 CVE 分配給底層庫 @anthropic-ai/sandbox-runtime(CVSS 評分僅 1.8,“Low”),而非面向用戶的產品 Claude Code;更新日誌中寫的是 “Fixed proxy DNS resolution”(修復了代理 DNS 解析),未提及安全漏洞。關傲男在研究報告中對此寫道:「當 React Server Components 出現嚴重漏洞時,React 和 Next.js 各自獲得了獨立的 CVE,Meta 和 Vercel 都發布了安全通告,兩個社區都得到了充分告知。Anthropic 選擇了不同的做法。」截至目前,搜索 “Claude Code Sandbox CVE” 依然無法找到任何官方安全通告。

在應對憑證竊取問題時,Anthropic 選擇封禁 ps 命令,但黑名單思路先天不足——封禁一個命令,攻擊者有無數替代路徑。正確做法是明確聲明 Agent 只需要哪些工具。而在「評論與控制」研究中,Anthropic 雖將漏洞評級提升至 CVSS 9.4(Critical 級別)並轉入私有賞金計劃,發言人卻表示「該工具在設計上並未針對提示詞注入進行加固」。廠商默認信任模型自身的安全能力,卻在系統架構層面缺乏縱深防禦;當漏洞暴露出這種缺失時,「設計局限」便成了一個方便的分類——它既承認了問題,又在某種程度上免除了發布安全通告的義務。

更廣泛的行業圖景是,同樣的問題不僅限於 Anthropic 一家。在 4 月披露的「評論與控制」研究中,Google 的 Gemini CLI 和微軟 GitHub 的 Copilot Agent 均被證實存在同一攻擊面,三家公司的問題均已被確認並修復,但均未發布安全公告或 CVE 編號。Anthropic 支付了 100 美元賞金,Google 支付了 1337 美元,GitHub 最初以「已知問題,無法複現」關閉報告,在收到逆向工程證據後以「資訊性」標籤結案,並發放 500 美元。合計 1937 美元——而這三款產品涵蓋了《財富》百強中絕大多數企業。

虛假的安全感比沒有安全措施更具危害。沒有沙箱的用戶知道自己沒有邊界;擁有破損沙箱的用戶以為自己有。一個運行 Claude Code 並配置了域名白名單的團隊,在 5.5 個月裡對風險毫不知情,升級後看到更新日誌只會得出結論:沙箱一直在正常工作。此外,當漏洞被披露後,沒有安全通告意味著用戶無法判斷自己是否曾受影響,也缺乏回溯審計的依據。

面對這一現狀,安全社區開始形成共識:不能將信任單點化地押注在廠商的沙箱實現上。Claude Code 的 SOCKS5 代理建立在一個僅有 10 個 GitHub Star、最後提交停留在 2024 年 6 月的第三方 npm 包之上,安全邊界橫跨 JavaScript 和 C 兩種運行時,卻在信任交界處缺少最基本的規範化處理。修復補丁中添加的 isValidHost() 函數——負責拒絕空字節、百分號編碼、CRLF 等非法字符——本應從沙箱上線第一天就存在。關傲男提出了一個務實的防禦框架——將 AI Agent 視為需要遵循最小權限原則的超級員工,核心在於多層防禦:

Claude Code

安全的聲譽建立在每一次披露和每一個補丁的透明度之上,而非品牌敘事。當用戶基於信任將憑證交給 Agent 處理時,廠商有義務確保防線有效,也有義務在失效時及時告知。這兩點,Anthropic 在 Claude Code 沙箱上都未能做到。

“The worst outcome of a sandbox is not that it blocks something, but that it gives people a false sense of security. Releasing a vulnerable sandbox is worse than not releasing a sandbox at all.” — said Guan Aonan.

(本文首發於鈦媒體APP,作者 | 硅谷Tech_news,編輯 | 焦燕)

參考資料:

1. oddguan.com — 第二次,同一個沙盒:另一個 Anthropic Claude Code Network 沙盒繞過允許資料外洩(Aonan Guan,2026.05.20)

2. The Register — 連 Claude 也承認其沙盒中的漏洞是真實且危險的(2026.05.20)

🚀 主流数字货币交易所推荐

安全稳定的交易平台 | 新用户注册享专属福利

Binance币安交易所LOGO

Binance 币安

全球最大加密货币交易所

立即注册 下载APP
OKX欧易交易所LOGO

OKX 欧易

老牌知名数字资产平台

立即注册 下载APP
Bybit交易所LOGO

Bybit

专业合约交易平台

立即注册 下载APP

⚠️ 风险提示:数字货币交易存在风险,请理性投资,谨慎决策

声明:文章不代表币圈子观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部