資安公司Adversa AI揭露SymJack新型攻擊鏈,協助開發者寫程式、修改檔案與執行命令的AI程式開發代理。研究團隊指出,攻擊者可準備一個惡意程式碼儲存庫,讓AI代理執行看似普通的檔案複製動作,但實際內容可能被寫入代理工具的設定檔,並在代理下次啟動時執行攻擊者指定的程式。
研究團隊已在Claude Code、Gemini CLI與Antigravity CLI、Cursor Agent CLI、GitHub Copilot CLI、Grok Build CLI以及OpenAI Codex CLI重現SymJack攻擊。由於各工具的攻擊流程相近,Adversa AI將其視為同一類設計問題,而不是單一產品的個別漏洞。
SymJack攻擊手法可讓核准提示看起來只是一般檔案複製,但實際寫入位置可能被符號連結(Symlink)導向AI代理工具的設定檔。攻擊者可在儲存庫中放入AI代理會讀取的專案指令檔,例如CLAUDE.md、AGENTS.md與GEMINI.md等,要求代理複製一個偽裝成影片或媒體檔的檔案。使用者核准時,畫面上看起來只是一般檔案複製,但目標檔案其實是符號連結,也就是一種會把寫入動作導向其他位置的檔案捷徑。
當符號連結指向AI代理的設定檔,攻擊者準備好的內容就可能被寫入敏感位置。研究團隊指出,攻擊者可藉此寫入MCP伺服器設定,使代理工具下次啟動時執行設定中的啟動命令,讓攻擊者指定的程式在使用者權限下執行。
Adversa AI表示,Anthropic未接受其漏洞通報,理由是不在漏洞獎勵計畫範圍內,但後續Claude Code核准流程已加入符號連結解析後路徑顯示。Google未接受通報,認為該攻擊需要使用者複製惡意儲存庫並核准命令,Cursor則將通報列為重複案件,原因是已有研究者通報符號連結處理問題。OpenAI的Bugcrowd漏洞回報平臺也將Codex CLI案例關閉,理由包括使用者已核准檔案複製命令。xAI與GitHub在研究發布時尚未回覆。
研究團隊建議,AI程式開發代理應在檔案寫入前解析符號連結的真正目標,避免只依命令文字判斷操作是否安全。組織也應限制代理工具寫入設定檔的能力,檢查儲存庫中的符號連結與代理指令檔,並避免處理外部程式碼變更的自動化環境持有高權限憑證。