網路安全研究人員 Wiz 揭露了 Snowflake 公開的 `snowflakedb/snowflake-connector-net` 儲存庫中一個新的 GitHub Actions 工作流程注入漏洞,該漏洞聲稱可透過精心設計的 GitHub 問題來觸發,進而執行包含內部 Jira 憑證的工作流程中的命令。

該問題存在於 `.github/workflows/jira_issue.yml` 中,當公開問題被開啟時就會執行,並將 `JIRA_BASE_URL`、`JIRA_USER_EMAIL` 和 `JIRA_API_TOKEN` 暴露給相同的工作流程步驟。此弱點僅限於儲存庫的 CI/CD 自動化,並未識別出受影響的 Snowflake Connector for .NET 版本。

該工作流程將攻擊者控制的問題標題和內文值直接插入到 `run: block` 中。它還檢查了 `github.event.pull_request.user.login`,即使事件是一個問題,這意味著引用的提取請求屬性並不存在。

GitHub 表示:「如果您嘗試解引用一個不存在的屬性,它將評估為一個空字串。」在此情況下,與 `whitesource-for-github-com[bot]` 的比較並未阻止一個普通問題到達該作業。

Wiz 表示,其 Red Agent 系統在授權安全測試期間利用了此注入漏洞,在第一個載荷導致 shell 語法錯誤後,系統改變了其方法。研究人員表示,他們隨後收到了來自 GitHub Actions runner 的帶外回調,並取得了工作流程使用的 Jira API 令牌。

Wiz 指出,該令牌屬於 `[email protected]`,並允許對涵蓋 `snowflakecomputing.atlassian.net` 上的工程、安全合規和錯誤賞金追蹤的 Jira 專案進行讀取存取。底層的 Jira 權限、工作流程執行和審計記錄並未公開。

Wiz 表示,他們於 2026 年 6 月 23 日透過 HackerOne 報告了此問題,報告編號為 #3819931。Snowflake 當天在提取請求 #1402 中合併了一個修復,將直接的 GitHub 表達式擴展替換為傳遞給 `jq` 作為參數的環境變數。

該易受攻擊的工作流程於五天前,即 6 月 18 日,在提取請求 #1218 合併時達到了預設分支。修正後的處理方式仍保留在儲存庫的 master 分支上。

Snowflake 在 Wiz 轉載的一份聲明中表示,「我們的調查未發現未經授權存取的證據。」Wiz 表示,Jira 令牌已於 6 月 24 日輪換,Snowflake 的審查發現,在五天的暴露窗口期間,並未發現其與其他外部使用有關。Snowflake 的底層審計日誌並未公開。

Wiz 將此缺陷描述為 GitHub Copilot Autofix 變更的結果,儘管底層 GitHub 歷史記錄並未將 Copilot 確定為易受攻擊的 `jira_issue.yml` 程式碼的作者。明確的 Copilot 共同撰寫的提交 `6d0e2fa` 更改了 `jira_close.yml`,而 `jira_issue.yml` 的不安全重構出現在 2025 年 8 月 25 日的單獨提交 `094038e` 中,該提交由 GitHub 歸因於 `sfc-gh-hpathak`。

這兩項變更後來都被合併到 6 月 18 日的 squash merge 提交 `4a1b8ce` 中,該提交將 Copilot Autofix 列為其共同作者之一。因此,提交歷史記錄證實了 Copilot 參與了提取請求 #1218,但並非易受攻擊程式碼行的作者。

GitHub 已於 2025 年 7 月記錄了這類工作流程注入,警告不要直接在 `run:` 區塊內擴展不受信任的問題數據,並建議使用中間環境變數。

截至 2026 年 8 月 17 日,尚未找到該問題的 CVE、CVSS 分數或 CISA 已知漏洞 (KEV) 目錄條目,也未識別出與之相關的連接器版本更新。易受攻擊的插值已不再存在於 master 分支上,現有主要材料並未證實野外惡意利用或客戶洩露。