自律型AIセキュリティエージェントであるWiz Red Agentが、Snowflakeの公開リポジトリsnowflake-connector-netにおいて深刻なGitHub Actionsインジェクション脆弱性を発見しました。
この欠陥により、認証を受けていないGitHubユーザーがGitHub Actionsランナー上で任意のコマンドを実行し、Snowflakeの社内Jira環境の認証情報を窃取できる状態になっていました。
今回の発見は、CI/CDにおけるわずかなコーディングミスが、特にGitHubワークフローが攻撃者制御下のイシューやプルリクエストのコンテンツを処理する場合に、重大な認証情報漏えいインシデントへとつながりかねないことを示しています。
脆弱性が見つかったのは、GitHub上でユーザーがイシューを起票するたびに自動でJiraチケットを作成するよう設計されたGitHub Actionsワークフロー、jira_issue.ymlです。
2026年6月18日にマージされたプルリクエスト#1218は、環境変数とjqによるパースを使う安全な実装を、信頼できないイシュータイトルをシェルスクリプトに直接埋め込む方式に置き換えてしまったとされています。この変更がコマンドインジェクションの機会を生み出しました。
GitHub Actionsの式はシェルエスケープが適用される前に展開されるため、攻撃者はシングルクォートを含む細工したイシュータイトルを使うことで、意図した文字列を終端させ、任意のBashコマンドを注入できました。
ワークフローの実行を制限するはずだった条件チェックも、issues.openedイベントに対しては真と評価されていたとされています。その結果、リポジトリでイシューを起票できるGitHubユーザーであれば誰でも、脆弱なコードパスに到達しワークフローを発火させることが可能でした。
Wiz Red Agentがこの問題を特定したのは2026年6月23日、脆弱なプルリクエストがマージされてからわずか5日後のことでした。このエージェントは自律的にワークフローをレビューし、攻撃用ペイロードを作成、帯域外コールバックを使ってコマンド実行を検証しました。
最初の試みはコメント文字がシェル構文を乱したため失敗しました。しかしエージェントはBashのエラーを分析し、注入したシェルコンテキストを正しく終端するようペイロードを修正し、人間の誘導なしに2回目の試行を成功させました。
最終的なペイロードには、GitHubホスト型ランナーからJiraの認証情報を抽出するbase64エンコードのコールバック機構が組み込まれていました。
Wizのリスナーは、Azureがホストするランナーから、[email protected]サービスアカウントに紐づくbase64エンコード済みのJira API認証情報を含む応答を受信しました。
回収されたトークンはSnowflakeのAtlassian Jiraインスタンスへの認証に成功し、エンジニアリング、セキュリティコンプライアンス、バグバウンティ追跡の各プロジェクトへの読み取りアクセスを可能にしていました。
この一件は、安全性を欠いたCI/CD自動化によって単一のワークフローシークレットが漏えいした場合に生じ得る、潜在的な被害範囲の大きさを浮き彫りにしました。
GitHub Advanced Securityは脆弱なリビジョンをスキャンしていたとされていますが、このインジェクション欠陥を検出できませんでした。なお、同じプルリクエスト内では、関連するjira_close.ymlファイルにCopilot支援による変更が加えられていました。
Wizは後に、Copilotによる文書化された関与はこの別ファイルに限られていたと明らかにしましたが、この一件は、AI支援による変更についても安全でないワークフローパターンがないかレビューする必要性を浮き彫りにしています。
SnowflakeはWizがHackerOne経由でこの欠陥を報告した後、脆弱なワークフローを修正し、漏えいしたJiraトークンをローテーションしました。
同社は監査ログも確認し、漏えい期間中に観測された活動はWizによる概念実証(PoC)の通信のみであったことを確認しました。Wizはセキュリティ検証の過程でアクセスしたすべてのデータを削除しています。
今回のインシデントは、GitHub Actionsワークフローにおいて、信頼できないGitHubイベントのフィールドをシェルコマンドに直接埋め込んではならない理由を示しています。
組織は代わりに環境変数を使用し、ユーザー制御下の入力を安全にパースし、ワークフローの権限を制限し、有効期限の短いシークレットを用い、イシューを起点とするワークフローが不必要に機密性の高い認証情報へアクセスできないようにすべきです。
自律型AIエージェントの登場により、脆弱性の発見からエクスプロイトまでの時間が短縮されるにつれ、CI/CDのセキュリティ対策もそれに応じて進化させる必要があります。
セキュリティチームには、ワークフローを意識したコードレビュー、より強固なシークレットの分離、そしてGitHub Actionsの式とシェル実行の間に潜む危険な相互作用を検知する検証メカニズムが求められます。
セキュリティチームに、疑わしい活動をより迅速に調査し、ビジネスへの影響が拡大する前に脅威を封じ込めるための可視性とコンテキストを与えましょう。ANY.RUNで調査を強化する
翻訳元: https://cyberpress.org/snowflake-github-actions-injection-flaw/