近日,GitHub平台連續遭遇兩起嚴重安全事件,引起開源社群高度關注。第一起事件為大規模釣魚活動,藉由偽造「安全警報」攻擊近12,000個程式碼庫;第二起則是GitHub Action的供應鏈入侵,影響超過23,000個程式碼庫。
假「安全警報」釣魚攻擊竊取GitHub帳號控制權
近日攻擊者針對GitHub平台發起大規模釣魚活動,向近12,000個程式碼庫發布虛假「安全警報」。這些警報聲稱檢測到用戶帳號來自冰島雷克雅維克的「異常登入嘗試」,並建議用戶採取安全措施。
假「安全警報」顯示:「安全警報:檢測到異常訪問嘗試。我們發現您的GitHub帳戶有來自新位置或設備的登入嘗試。」
這些警報提供的所有連結都指向一個名為「gitsecurityapp」的惡意OAuth應用授權頁面,該應用請求了大量高風險權限,包括:
- repo:完全訪問公共和私有程式碼庫的權限
- user:讀取和寫入用戶資料的能力
- read:org:讀取組織成員資格、組織項目和團隊成員資格
- read:discussion, write:discussion:讀取和寫入討論的訪問權限
- gist:訪問GitHub gist的權限
- delete_repo:刪除程式碼庫的權限
- workflows, workflow, write:workflow, read:workflow, update:workflow:控制GitHub Actions工作流程的權限
若用戶授權此應用,系統將生成一個存取令牌並發送至應用的回調地址,該地址位於onrender.com平台上。這將使攻擊者獲得完全控制受害者帳號的能力。
網路安全研究員Luc4m首先發現了這一攻擊。若您不慎授權了此惡意應用,應立即:
- 在GitHub設置中撤銷該應用的訪問權限
- 檢查是否有新增或意外的GitHub Actions工作流程
- 確認是否有私有gist被創建
- 更新您的憑證和授權令牌
GitHub Action遭供應鏈入侵洩露CI/CD機密
GitHub Action「
tj-actions/changed-files」被發現遭到供應鏈入侵,該組件用於追蹤和檢索所有更改的文件和目錄,目前被超過23,000個程式碼庫使用。
此漏洞已被分配編號CVE-2025-30066(CVSS評分:8.6),入侵發生在2025年3月14日之前。
資安研究公司StepSecurity分析指出:「此次攻擊中,攻擊者不僅竄改了Action的原始程式碼,還回溯性地修改了多個版本標籤,使所有版本都指向含有惡意程式的提交。一旦執行遭到入侵的Action,系統會在GitHub Actions的建構日誌中自動洩露敏感的CI/CD憑證與機密資訊。」
如果工作流程日誌可公開訪問,可能導致敏感機密未經授權曝光,包括:
- AWS存取密鑰
- GitHub個人訪問令牌(PATs)
- npm令牌
- 私有RSA密鑰等
具體來說,惡意插入的程式碼設計為運行托管在GitHub gist上的Python腳本,從Runner Worker進程中轉儲CI/CD機密。這一惡意程式碼來自未經驗證的原始碼提交。相關GitHub gist現已被移除。
項目維護者表示,未知威脅行為者成功入侵了一個具有程式碼庫特權訪問權限的機器人帳號(@tj-actions-bot)所使用的GitHub個人訪問令牌(PAT)。
事件發現後,專案維護團隊立即採取了以下安全措施:
- 更新機器人帳號密碼
- 將驗證機制升級為更安全的通行密鑰(passkey)
- 依照最小權限原則重新設定帳號權限
- 同時,GitHub平台已撤銷所有遭入侵的個人訪問令牌(PAT)
專家建議所有使用此GitHub Action的開發者應立即更新至最新版本(46.0.1)。此外,開發團隊也應仔細檢視3月14日至15日期間執行的所有工作流程,特別留意「changed-files」部分是否有異常輸出。
雲安全公司Wiz進一步分析指出:「截至2025年3月15日,tj-actions/changed-files的所有版本皆已遭到入侵,原因是攻擊者成功修改了現有版本標籤,讓它們全部指向惡意程式碼。不過,若開發者使用了哈希固定(hash-pinned)版本的tj-actions/changed-files,則不會受到影響,除非他們在攻擊時間範圍內更新至受感染的哈希值。」
這兩起事件再次凸顯了開源軟體在供應鏈安全方面的獨特脆弱性,一旦被利用,可能對數以萬計的下游使用者造成嚴重衝擊。截至發稿時間,GitHub官方尚未就這些事件發表正式回應。