IT之家 4 月 7 日消息,3 月 31 日,Anthropic 意外泄露了 Claude Code 大部分源代碼。此后,Anthropic 一直在努力打擊這些代碼的復(fù)制和傳播行為。
Adversa AI 安全研究人員在對這份源碼進行審查后發(fā)現(xiàn),Claude Code 存在一個致命高危漏洞 —— 當(dāng)其處理超過 50 條子命令的復(fù)合命令時,會靜默繞過用戶配置的拒絕規(guī)則(deny rules)。
例如,開發(fā)者配置了“永遠(yuǎn)不要運行 rm”,單獨運行 rm 時會被阻止;但如果在 rm 前面加上 50 條正常命令(例如 50 個 true 命令),Claude Code 就會默認(rèn)繞過安全審查而直接執(zhí)行 rm。
該漏洞位于 bashPermissions.ts 文件的第 2162 至 2178 行。正常情況下,開發(fā)者可以在 Claude Code 中配置“禁止運行 curl”或“禁止運行 wget”等規(guī)則,以防止數(shù)據(jù)外泄。然而研究發(fā)現(xiàn),當(dāng)一條 shell 命令通過 &&、|| 或; 連接了超過 50 個子命令時,Claude Code 會跳過所有逐子命令的安全分析,包括上述安全規(guī)則檢查。
至于其為何存在,Anthropic 內(nèi)部工單 CC-643 曾記錄一個性能問題:對復(fù)合命令中的每個子命令逐一進行安全規(guī)則分析會導(dǎo)致 UI 卡頓。為了解決這一問題,工程師將分析上限設(shè)為 50 個子命令,超出部分則回退到“詢問用戶”模式。
代碼注釋寫道:“50 條已經(jīng)很慷慨了:正常用戶命令不會拆分得那么散。超出上限后我們回退到‘詢問’(安全默認(rèn)行為,因為我們無法證明安全,所以提示用戶)?!?/p>
這個假設(shè)對人類編寫的命令是成立的。開發(fā)者確實很少會手動輸入 50 多條命令。但它沒有考慮到 AI 提示詞注入攻擊 —— 惡意項目文件可以指示 AI 生成一條看似正常的超長管線,將惡意載荷放在第 51 個及之后的位置。
這一缺陷已影響超過 50 萬名開發(fā)者,且攻擊路徑極其簡單:只需一個精心構(gòu)造的開源倉庫,就能竊取 SSH 密鑰、云憑證和 API Token。
最令人震驚的是:Anthropic 其實已經(jīng)研究出解決方案,他們新開發(fā)的 tree-sitter 解析器無論命令長短都能正確檢查安全規(guī)則。代碼已經(jīng)寫好,已經(jīng)測試過,就放在同一個倉庫里,但從未被應(yīng)用到實際交付給客戶的產(chǎn)品中。
值得慶幸的是,該問題已得到修復(fù)。根據(jù) 4 月 4 日的最新公告,Anthropic 在最新發(fā)布的 Claude Code v2.1.90 中似乎解決了這一問題,官方將其稱為“解析失敗回退導(dǎo)致的 deny rules 降級”。

IT之家注:Claude Code 是 Anthropic 基于終端的 AI 編碼助手,允許開發(fā)者直接從命令行與 Claude 交互,可編輯文件、執(zhí)行 Shell 命令、搜索代碼庫、管理 Git 工作流,并編排復(fù)雜的多步驟開發(fā)任務(wù)。它是 Anthropic 增長最快的產(chǎn)品,據(jù)估計從企業(yè)客戶處產(chǎn)生的年經(jīng)常性收入達(dá) 25 億美元(現(xiàn)匯率約合 172.31 億元人民幣)。
Claude Code 包含一套權(quán)限系統(tǒng),用戶可以配置拒絕規(guī)則(硬阻止特定命令)、允許規(guī)則(自動批準(zhǔn)特定命令)和詢問規(guī)則(始終提示批準(zhǔn))。例如,開發(fā)者可能配置:
json
{ "deny": ["Bash(curl:*)", "Bash(wget:*)"], "allow": ["Bash(npm:*)", "Bash(git:*)"] }這告訴 Claude Code:“永遠(yuǎn)不允許 curl 或 wget(防止數(shù)據(jù)外泄),但自動允許 npm 和 git 命令(常用開發(fā)工具)?!?/p>
權(quán)限系統(tǒng)是 AI 智能體與開發(fā)者系統(tǒng)之間的主要安全邊界。企業(yè)安全團隊正是通過這個機制,對擁有開發(fā)者工作站完整 Shell 訪問權(quán)限的 AI 工具實施安全策略。當(dāng)這個機制無聲失效時,開發(fā)者就失去了安全網(wǎng),也無法知道自己的安全策略沒有生效。
這并非一個僅存在于理論上的漏洞。攻擊路徑是實際、現(xiàn)實且可操作的。研究團隊提醒:不要依賴拒絕規(guī)則作為安全邊界,限制 Claude Code 的 shell 訪問權(quán)限至最小必要范圍,監(jiān)控開發(fā)者工作站的異常出站連接,在運行 Claude Code 之前審計任何倉庫中的 CLAUDE.md 文件。
Adversa AI 研究團隊表示,他們正在繼續(xù)分析泄露代碼庫中的更多發(fā)現(xiàn),這份報告僅覆蓋了第一個也是最關(guān)鍵的發(fā)現(xiàn),后續(xù)將有更多披露。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。