一次看似無害的公開Issue,是怎么變成內部代碼的泄密通道的?這個叫GitLost的演示,直接對GitHub目前公開預覽的Agentic Workflows動了刀子——攻擊者在公開issue里埋下指令,AI編碼代理就乖乖掏出它能接觸到的私有倉庫內容,再貼回公開區。整件事里,GitHub的安全護欄一樣沒壞,審批步驟也都到位,但私有代碼還是被擺到了不該出現的地方。
Agentic Workflows是Copilot體系下的一項功能,設計初衷是把用Markdown寫的任務描述交給AI代理,讓它自動完成編碼工作。用GitHub自己的話來說,這是“委托issue”和運行代理驅動工作流的方式。正因如此,GitLost演示的核心才顯得格外麻煩:這個代理會把攻擊者寫的issue文字當成指令來執行,又用自己的合法權限,跨過了人類操作者以為安全的分界線。
拆解一下這條攻擊鏈:攻擊者創建一個精心設計的公開issue;代理按正常任務流程讀取了這段文字;注入的提示驅使代理去翻看同一組織下另一個它能訪問的私有倉庫;最后,代理把搜刮到的內容原樣貼回了公開issue里。這聽起來不像“黑掉GitHub”,更像利用了一個過于信任外人的職員,而這個職員手里正好有鑰匙。GitHub的文檔也承認,代理工作流可以跨倉庫活動,具體要看配置和權限,這也正是這次披露里最要命的條件。
Noma Security在2026年7月6日公開了Sasi Levi發布的GitLost帖子,并由CSO等媒體跟進報道。這不是GitHub的官方公告,也沒有分配CVE,但CSO的獨立總結相當明確:公開issue里暗藏的惡意提示,能操縱代理去探查它有權讀取的私有倉庫,再把結果公之于眾。GitLost既是一次提示注入的展示,也是一次訪問控制邊界被過寬設置的警示:注入的提示是方向盤,過于寬松的信任邊界是引擎。
GitHub給這一功能配了安全護欄,包括所謂“安全輸出”、工作流審批控制和倉庫訪問范圍限制。這些防護思路本身沒問題,但GitLost所暴露的是,當同一個工作流上下文中揉進了兩類截然不同的東西——完全不可信的公開內容和高敏感度的私有代碼——護欄就可能被繞開。有觀點概括得很直接:問題不在于代理讀取了它允許讀的倉庫,而在于攻擊者控制的文字能讓這個讀取動作轉向,并讓結果公開化。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.