在 Claude Code 按下「不再詢問」,會把含密碼的指令原文存進專案的設定檔;專案若公開上傳到 GitHub,密碼就跟著外洩。資安公司就在公開 GitHub 找到上千份帶密碼的設定檔,官方還沒修,使用者得自己換密碼。
(前情提要:Claude Code 預設改為 Auto Mode 開啟,因為人類只會按 yes)
(背景補充:Northflank 遭駭「金鑰全外洩」,Zeabur、Railway…部署平台連環爆)
按下 Claude Code 的「不再詢問」(Yes, and don’t ask again),它會把那行指令連同裡面的密碼,原封不動抄進專案資料夾裡的一個設定檔。如果你把整個專案公開上傳到 GitHub,這個檔案也會跟著公開,密碼就外洩了。
這個設定檔原本的用途,是記住你按過哪些「同意」,下次遇到同樣的指令就不再問。問題是,它記的是指令的原文。
資安公司 Apiiro 掃描了公開的 GitHub,也就是任何人都能看的程式碼倉庫。他們在裡面找到 1,122 份這類設定檔,藏著真實的密碼或金鑰,加起來有 1,379 組。
我會中嗎?
要三件事同時發生,密碼才會被公開。
第一,你在 Claude Code 的指令提示上按過「不再詢問」。第二,那行指令裡直接打了密碼,例如帶著授權碼的網路請求,或帶密碼連資料庫的指令。第三,這個設定檔跟著專案一起公開上傳到 GitHub。
被存下來的檔案叫 .claude/settings.local.json,放在專案資料夾裡。公開上傳時,它就跟著其他檔案一起出去。
Apiiro 說,這 1,379 組裡有 379 組是資料庫密碼,其他還有遠端伺服器的登入資料、GitHub 存取權杖和 AWS 雲端金鑰。受影響的有 63 個組織,多半是軟體公司,外洩的包括正式環境的資料庫密碼,以及一個處理醫療紀錄的應用程式的憑證。Apiiro 已經通知了這些組織。
不過有一個但書。Apiiro 沒有拿這些密碼去試還能不能用,只是靠格式和前後文判斷是真的。目前只有一家公司確認,外洩的金鑰當時是有效的。
不是會自動擋嗎,為什麼還會外洩?
Claude Code 官方說明確實寫了擋的機制。Claude Code 第一次建立這個檔案時,會把它放進這台電腦的「不上傳清單」,之後在這台電腦上,不管哪個專案都不會把它送上 GitHub。
Claude Code 負責人 Boris Cherny 在 Hacker News 上回覆,因為有自動擋,他認為這些外洩的檔案,是使用者自己建立、再自己上傳的。
但 Apiiro 的說法不同。這份清單只存在原本那台電腦上,並沒有寫進專案自己的「不上傳清單」(.gitignore)。所以換了新電腦、把資料夾整包複製出去,或這個檔案早就上傳過一次,清單就擋不住了。
Apiiro 還追查到,將近一半的專案裡,改動這個檔案的版本紀錄是 Claude 自己參與存下的。兩邊都同意這個檔案不該被上傳,爭的是它為什麼會被傳出去。這個問題也不是新的:去年 8 月就有使用者在 GitHub 回報過密碼被原文存進這個檔案,回報後來被系統自動關閉,沒有修正。
Anthropic 會修嗎?
目前還沒有修正,也沒有時間表。Cherny 說,Claude Code 過去沒有替使用者清除指令裡的密碼。團隊正在評估兩個做法:讓 auto mode 擋下這種情況,或是內建密碼掃描。他們會先做原型、比較利弊,再推出正式做法。
auto mode 是讓 AI 自己判斷指令安不安全、不用人一直按同意的模式,Cherny 建議大家改用它。Anthropic 自己的數據顯示,使用者對 97% 的權限提示都按了同意。人按到累了就會隨手點同意,所以「一直問」本來就擋不住人。
現在該怎麼做?
第一步,先把出現過的密碼和金鑰全部換掉。只刪檔案沒有用,因為 GitHub 會保留這個專案過去的每一個版本,別人早就可能抄走。換完之後,到自己的 GitHub 專案搜尋 .claude/settings.local.json,連過去的版本一起看,確認裡面有沒有留過密碼。如果不確定自己有沒有按過「不再詢問」,就當作按過,直接去查。
第二步,把這個檔名加進專案自己的「不上傳清單」.gitignore,別只靠電腦上的那一份。以後也別把密碼直接打在指令裡,改成把密碼放在指令以外的地方,指令裡只寫代號。順手也可以打開 GitHub 內建的密碼掃描,多一道防線。
在官方補上防護之前,指令裡寫了什麼、專案要不要公開,只能靠使用者自己多看一眼。
📍相關報導📍
Grok Build 遭爆偷傳用戶「整個家目錄」上雲端,開發者嚇壞:所有的一切都外洩
不是 Anthropic 遭駭!Cursor 確認市集上架惡意 Claude Code 擴充功能 2.1.313,已下架並公布修復步驟
Claude Code 開發者小心AI 模型聚合服務「偷加密貨幣」,研究實測 428 個 LLM Router:26 個複製憑證、1 個盜走 ETH

