Clean for 15 Versions. Version 1.0.16 Stole Your Inbox.
An email-delivery MCP server published 15 clean versions. One point release added a single BCC line that forwarded thousands of emails per day to an attacker-controlled inbox. Plus: a typosquatting cluster of npm packages stealing SSH keys. Examples anonymized; no packages named.
> 註:以下套件以類別描述,不點名。我們不會在沒有可重現的公開 CVE/advisory 連結下,把真實第三方套件指為惡意。
攻擊手法
這個 skill 是一個整合交易型 email API 的 MCP 伺服器,讓 AI Agent 可以發送和管理 email。連續 15 個版本都很乾淨。標準的 email API 封裝。沒有可疑行為。
之後某個小改版加了一行程式碼:在每封外寄 email 加一個 BCC 欄位,把副本轉寄到攻擊者控制的信箱。如果你用這個 skill 透過 AI Agent 發 email,每一封 -- 商業通訊、客戶資料、內部溝通 -- 都被靜默轉寄。
影響規模
交易型 email 整合通常發送自動通知、密碼重設、發票和商業通訊。單一繁忙整合每天可處理數千封 email。每一封都被複製給攻擊者。BCC 欄位對收件人不可見 -- 寄件人看不到任何 email 被轉寄的跡象。
為什麼現有工具沒抓到
npm audit 檢查依賴弱點,不檢查應用邏輯在版本間的行為變化。GitHub Dependabot 監控已知 CVE。一個新型 BCC 注入沒有 CVE。Code review 能抓到 -- 前提是有人在每次 MCP 伺服器更新時看 diff。實際上 MCP 伺服器自動更新,沒人讀 changelog。
ATR 規則 ATR-SC-003(供應鏈行為變更偵測)會標記這個:它偵測版本間新增的網路相關操作(email 發送、HTTP 請求、WebSocket 連線)。BCC 插入是對現有網路操作的修改,改變了收件人集合 -- 正是規則設計要抓的模式。
仿冒套件群
在調查這個 email skill 時,我們觀察到一個針對 MCP 生態系的協同仿冒行動。我們在內部追蹤代號為 SANDWORM_MODE(跟 APT 組織無關 -- 名稱來自內部追蹤編號)。約 19 個 npm 套件在 48 小時內發布,每個都是熱門 MCP 套件名稱的近似仿冒(例如熱門 CLI 與 server 套件名稱的單字元變體)。
每個套件都遵循相同模式:最少功能(通常只是重新匯出合法套件),加一個 postinstall script 竊取 ~/.ssh/id_rsa、~/.aws/credentials 和所有環境變數,然後 POST 到一個 Cloudflare Workers 端點。外洩資料經 Base64 編碼,偽裝成「遙測」payload 送到一個看起來像合法分析服務的網域。
時間線
這些仿冒套件在 npm 上存活了 6 到 43 小時才被移除。下載量從每個套件數十到數百不等。整個套件群的總預估安裝數約數千次。每次安裝都可能洩露 SSH keys 和雲端憑證。如果你習慣手動輸入套件名稱安裝 MCP 工具,請仔細確認拼字;若懷疑裝到仿冒套件,請立即輪換你的 SSH keys 和雲端憑證。
教訓
對 MCP 的供應鏈攻擊不是理論。正在發生。攻擊模式跟公開記錄的 2018-2021 年 npm 事件一模一樣(event-stream、ua-parser-js、colors/faker),但影響更大,因為 MCP Skills 有更廣的系統存取權。 防禦需要三件事:(1) 檢查工具行為而非只看依賴版本的預安裝掃描,(2) 標記版本間行為變更的 diff 分析,(3) 對照已知安全套件登錄的仿冒偵測。ATR 和 PanGuard 三項都有。