近日,GitHub官方推出的MCP服務器為大語言模型增添了新功能,包括讀取用戶倉庫議題和提交新拉取請求(PR)的能力。然而,這一創新卻潛藏著三重安全威脅:私有數據訪問、惡意指令暴露以及信息泄露。
據瑞士網絡安全公司Invariant Labs發布的研究報告,他們發現GitHub官方的MCP服務器存在安全漏洞,攻擊者能夠在公共倉庫中巧妙隱藏惡意指令。當AI智能體如Claude 4處理這些公共倉庫議題時,可能會不經意間觸發這些指令,導致MCP用戶的私有倉庫敏感數據被泄露。值得注意的是,類似的漏洞也存在于GitLab Duo中。
攻擊的核心在于獲取用戶正在處理的其他倉庫信息。由于MCP服務器被授予了訪問用戶私有倉庫的權限,當大語言模型處理相關議題并嘗試創建新PR時,私有倉庫的名稱便有可能被暴露出來。
Invariant Labs的測試案例詳細揭示了這一攻擊過程。用戶只需向Claude發出一個看似無害的請求,如“查看pacman開源倉庫的議題”,就可能觸發信息泄露。當AI智能體在處理公共倉庫議題時,會意外觸發隱藏的惡意指令,進而將私有倉庫的數據拉入上下文環境,并在公共倉庫中創建一個包含私有數據的PR,使得攻擊者能夠輕松訪問這些敏感信息。
更為嚴重的是,如果將多個MCP服務器組合使用,一個用于訪問私有數據,一個用于暴露惡意Token,另一個用于泄露數據,將構成更為嚴峻的安全風險。而GitHub的MCP服務器目前已經將這三要素集成在一個系統中,這無疑加劇了安全威脅。
在實際測試中,Invariant Labs成功滲出了用戶ukend0464的私有倉庫信息,泄露的內容包括私人項目“Jupiter Star”、移居南美計劃以及薪資等高度敏感的數據。這一漏洞源于AI工作流的設計缺陷,而非傳統GitHub平臺的安全漏洞。
為了應對這一安全挑戰,Invariant Labs提出了兩套防御方案。首先,實施動態權限控制,嚴格限制AI智能體的訪問權限,確保它們只能訪問必要的數據。其次,建立持續安全監測系統,通過實時行為分析和上下文感知策略來攔截異常的數據流動,從而及時發現并阻止潛在的安全威脅。