比如你接了一個案子,對方用雲端硬碟傳來一個專案壓縮檔。你解壓縮,打開 AI 寫程式工具,丟一句「幫我看看這個專案在做什麼」。
這個動作很順,順到沒人會停下來想。但今年九月有資安研究指出,光是「打開」這一步,就可能讓資料夾裡別人寫好的東西先跑起來。你還沒下任何指令。
先說清楚,不用嚇到。三個習慣就夠了,下面會講。
這篇只講「別人傳來的資料夾」。外掛怎麼裝,看《你裝的 AI 外掛,跟你請的外包一樣要談權限》。信件和網頁裡藏的指令,看《你叫 AI 讀的那封信,可能藏著給它的指令》。如果你想先把整體的安全底線畫好,可以從《Vibe Coding 前,我會先幫自己畫三條線》開始。
發生了什麼,GitSpawn 是什麼
先補兩個詞。
git 是幫專案記錄修改歷史的工具。每個用 git 管的專案資料夾裡,都有一個隱藏資料夾叫 .git,裡面放著歷史紀錄,也放著一份設定檔。
設定檔裡有個選項叫 core.fsmonitor。它本來是效能用的,意思是「檢查檔案有沒有變動時,順便呼叫某個程式幫忙」。設定本身完全合法。問題是,這個「某個程式」可以由別人事先填好。
2026 年 9 月初,資安公司 Manifold Security 揭露一類手法,取名 GitSpawn。Cloud Security Alliance(CSA,雲端安全聯盟)隨後也發了研究筆記。
運作方式是這樣。AI 寫程式工具一啟動,為了了解專案背景,會跑 git status 之類的指令。git 一跑,就會去呼叫設定檔裡指定的那個程式。如果那個程式是別人預先放進去的,它就在你的電腦上,用你的權限跑起來了。
就像收到陌生人寄來的 USB,插上去就自動執行。
依 Manifold 與 CSA 的說法,這次涉及七個工具、八個發現,影響的工具包含 Claude Code、Codex、Cursor。
有一個前提要講。一般的 git clone 不會把這份本地設定帶過來,所以從 GitHub 正常抓下來的專案,不太會碰到這件事。風險出現在資料夾「連同 .git 一整包」傳來的時候。比如壓縮檔、共用雲端、隨身碟。
另一件必須寫清楚的事。依 CSA 的研究筆記,截至發布時,沒有公開來源回報實際攻擊。這篇不在講已經有人中招,它講的是一個還沒大量發生、但入口很具體的風險。

這類「看起來正常的東西裡有陷阱」的情況,在《AI 幫你裝的套件,可能是駭客等你上鉤的陷阱》那篇也出現過。套件是名字看起來合理,這次是資料夾看起來普通。
現在修好了嗎
這一節我只能講「披露當時」的狀態,不講現在。
僅就披露當時而言,依 Manifold 與 CSA 的資料,OpenAI 已經為 Codex CLI 發布了編號 CVE-2026-19592 的修補,Cursor 和 Claude Code 的 core.fsmonitor 路徑也已修正,但 Claude Code 另有一條叫 ultrareview 的路徑,披露時還沒修。同一時間,也有一些工具、一些路徑還沒修。各來源對細節的說法不完全一致。
我沒有查到十月之後的更新公告。所以我不替任何一家工具下結論,不寫誰修好了,也不寫誰沒修。各家的狀況會變,請你用你自己的工具,去看它的官方公告。
就算官方說修好了,「別人傳來的檔案,先看過再讓工具讀」還是好習慣。工具會修,下一種手法也會出現。習慣比版本號耐用。
三步驟,收到別人的專案資料夾
步驟一,確認來源。 這包檔案是誰給的?是你預期要收的嗎?如果有一點點不確定,換個管道問對方。比如傳個訊息,或打通電話。花一分鐘,問的是「這包是你傳的嗎」。
步驟二,先用眼睛看,不要先讓 AI 跑。 解壓縮之後,先把檔案總管或 Finder 的「顯示隱藏檔案」打開,看看資料夾裡有沒有 .git。
有的話,而你只是想請 AI 讀內容、看架構,就把 .git 整個移出去,再交給工具。專案內容不會少,只是少了修改歷史。對不寫程式的人來說,這等於把那個隱藏抽屜整個拿掉。AI 讀不到那份設定,自然不會去呼叫裡面的程式。
步驟三,真的要執行,就隔離。 要把別人的專案跑起來,用一台不放重要資料的電腦,或虛擬機器(在你電腦裡劃出一塊獨立的假電腦),或雲端臨時環境。你的主力電腦如果放著 SSH 金鑰(連伺服器的通行證)、雲端帳號、客戶檔案,更該這樣做。比如你替客戶做事,客戶的資料就在那台電腦裡,更不能拿來試別人的東西。
另外有人建議,可以在 git 裡設一行 git config --global core.fsmonitor false,把這個功能全域關掉。CSA 的研究筆記有提到這個做法,但 Manifold 原文沒有提,git 官方文件也沒背書。git 設定的優先順序,是專案自己的設定壓過全域設定。所以資料夾裡 .git/config 已經寫好的 fsmonitor,這一行擋不住。它不能取代步驟二,你想用的話,只當額外的保險。

把它寫進你交代 AI 的規則
用 DEL 框架來看,你交代 AI 的是這三件事。
- Direction 是,我要你幫我看懂這個專案。
- Expectation 是,我預期你只讀內容,不執行任何東西。
- Limitation 是,資料夾裡來路不明的檔案,不准自動執行,要執行前先問我。
最後這一格,可以直接貼進對話開頭。
情境:收到別人傳來的專案,請 AI 幫忙看架構時。 流程位置:第三步,接在確認來源、移走
.git之後。這個專案資料夾來自外部。請只讀取檔案內容並說明架構,不要執行資料夾裡的任何腳本或指令。如果你覺得需要執行某個東西,先停下來告訴我是哪一個、為什麼。
要誠實講一件事。這句話擋不住工具自己的啟動動作。GitSpawn 的重點,就是它發生在你下指令之前。所以這句 prompt 是第二道防線,第一道是步驟二,先把 .git 拿掉。
想把 Limitation 寫得更扎實,可以讀《用 Limitation 守住你真正在意的那條線》。
下次收到壓縮檔
回到開頭那個案子。下次對方傳壓縮檔來,先花一分鐘看有沒有 .git。
三件事,現在就能做。
- 收到別人的專案資料夾,先確認是誰給的。
- 解壓縮後找有沒有
.git隱藏資料夾,有就先移走,再給 AI 讀。 - 要執行別人的專案,用不放重要資料的環境。
兒子睡著後那 90 分鐘很珍貴,我不想拿來處理被亂動過的電腦。多花一分鐘看一眼,晚上就能放心睡。
等你的專案準備好要上線了,再回頭看《AI 幫你寫的程式碼,先問這五個問題再上線》。