Cursor 在 10 月 29 日發布資安公告,指出其 VS Code 擴充功能市集中出現一個遭竄改的 Anthropic.claude-code 2.1.313 版本。這個版本並非 Anthropic 開發,最多約 5000 名使用者下載過。Cursor 已下架該版本,一度關閉整個擴充功能市集,輪換自家金鑰後重建上線,並表示會逐一聯繫受影響的使用者。
依公告給出的時間,惡意版本從太平洋時間當天凌晨 2:27 前後起可供下載,到下午 1:35 才被撤下,前後約 11 個小時。Cursor 稱,官方版本與市集中的其他擴充功能目前沒有發現遭更動的跡象。
安裝之後它做了什麼
這個擴充功能先蒐集一輪主機資訊:主機名稱、使用者名稱、作業系統與架構、家目錄路徑、環境變數的名稱、目前工作目錄、Git 電子郵件和公網 IP,再透過 HTTP POST 傳送到攻擊者伺服器 8099 連接埠的 /beacon 介面。
接著它試圖留下長期後門:在 authorized_keys 中寫入攻擊者的 SSH 公開金鑰,開啟本機 SSH 服務,再建立一條反向 SSH 通道連回去。在 macOS 上它以 LaunchAgent 達成持久化,在 Windows 上嘗試以 SYSTEM 身分註冊排程工作,失敗就退回啟動指令碼,背景指令碼大約每 60 秒重試一次通道。
攻擊者的程式碼本身有缺陷。除非 Cursor 是以系統管理員權限啟動,否則建立通道這一步多半會失敗。攻擊者的伺服器也已被代管業者下線,通道與資訊回報目前都連不上。Cursor 提醒,通道沒建成不等於沒事,公開金鑰、持久化指令碼和已經傳出去的主機資訊都可能已經落地。
“Uninstalling the extension may not be sufficient — the payload drops standalone persistence scripts that keep running.”(解除安裝擴充功能可能不夠,惡意載荷會留下獨立運作的持久化指令碼。)
使用者該查什麼
公告提供的排查辦法相當直接:檢視 SSH 授權清單中有沒有名為 svc-telemetry 的公開金鑰;在終端機、網路與擴充功能安裝記錄中搜尋公告列出的 IP、連接埠和兩份 VSIX 檔案雜湊值(分 macOS arm64 與 Windows x64 兩個套件)。發現執行痕跡的機器要先隔離,以官方指令碼清除金鑰、持久化項目與通道行程,必要時重新安裝。
最後一項容易被跳過:這台機器能存取的憑證與工作階段都要更換,而且要在一台乾淨的電腦上更換。Cursor 的說法是,擴充功能只讀取了環境變數的名稱,沒有讀取值,但後門一旦打通,攻擊者完全可以回頭再取。
程式開發工具成了供應鏈攻擊目標
把這件事放回過去一年來看,AI 程式開發工具周邊的供應鏈事件一直沒有間斷。本站報導過 LiteLLM 1.107.0 遭投毒、專門竊取 AI 服務金鑰,也報導過一個 VS Code 外掛漏洞導致 3800 個 GitHub 儲存庫失竊。這次攻擊者挑中的是 Claude Code 這個名字,它安裝量大,使用者又習慣開放終端機與檔案權限給它,冒名的收益很高。
Cursor、Windsurf 這類以 VS Code 改作的編輯器無法直接使用微軟官方的擴充功能市集,只能接 Open VSX 或自行架設一套發行管道,審核與簽章機制各家不一。Anthropic 目前沒有就此事公開回應,冒名版本是如何以官方發布者身分上架的,Cursor 也沒有說明,這一環沒補上之前,其他熱門擴充功能也可能被同樣冒用。
對中國的開發者來說,使用 Cursor 的人不少,公司內網機器上裝著這類編輯器的也很多。如果在 10 月 29 日前後更新過 Claude Code 擴充功能,照著上面的步驟查一遍成本很低。
參考來源:Cursor 資安公告(核對受影響版本號、下載時段與 5000 人上限)、CocoLoop、Cursor 公告所附入侵指標清單(核對連接埠、重試間隔與兩份 VSIX 雜湊值)。