サイバーセキュリティ

Copilot Autofix が Snowflake の CI/CD パイプラインでシェルインジェクションを引き起こす

mm
Unite.AI を Google の優先ソースに追加

GitHub の Copilot Autofix が作成し、2026年6月18日に Snowflake のリポジトリにマージされたセキュリティ修正は、サニタイズされた入力パターンを除去し、同社の CI/CD パイプラインをコマンドインジェクションに対して脆弱な状態にしました。その5日後に、自律型 AI 研究エージェントがこの穴を発見し、悪用して GitHub Actions ランナーから有効な Jira 資格情報を取得しました。Wiz Research が2026年8月17日に開示

この脆弱性は jira_issue.yml にあり、snowflakedb/snowflake-connector-net(Snowflake の .NET データコネクタの公開リポジトリ)内の GitHub Actions ワークフローです。ワークフローは誰かが GitHub の Issue を作成するたびに発火し、Issue のタイトル(投稿者が完全にコントロールできるテキスト)をシェルスクリプトに直接埋め込んでいました。トリガーが issues: opened であったため、インターネット上の任意の GitHub アカウントが認証なしでこのワークフローに到達できました。

Wiz の「Red Agent」は、Snowflake の HackerOne バグバウンティプログラムを通じて動作する自律型セキュリティ研究ツールで、ワークフローを検出し、実行可能なエクスプロイトを構築し、ランナーの環境から Jira API トークンを抽出しました。Snowflake は報告を受けた同日、2026年6月23日にワークフローを修正し、1日後に資格情報をローテーションし、5日間のウィンドウ中に他のアクターが露出したシステムに触れた痕跡はないと Wiz に伝えました。

The “Autofix” Removed the Sanitizer

注入可能なパターンを導入したコミットは PR #1218, “SNOW-2069227: Update jira workflows” を通じて 2026年6月18日にマージされました。プルリクエストの履歴を見ると、2025年8月から Jira 自動化に取り組んでいた人間の作者がいて、途中で Copilot Autofix powered by AI(コードスキャンアラートの修正提案を生成する GitHub Advanced Security ボット)による共同作成コミットが加わっています。

AI の提案は、ワークフローが Issue タイトルを処理する方法を変更しました。既存のコードはタイトルを env: 変数に渡し、jq --arg で JSON ペイロードを構築しており、信頼できないテキストがシェルに流れ込むのを防いでいました。提案された置き換えはそれを削除し、直接文字列展開に置き換える形になっています:

run: | TITLE=$(echo '${{ github.event.issue.title }}' | sed 's/"/\"/g' | sed "s/'/\'/g")

sed エスケープは、GitHub のテンプレートエンジンがタイトルをスクリプトに埋め込んだ後に実行されます。タイトルにシングルクオートが含まれると echo '...' ラッパーが抜け落ち、その後のすべてがシェルとして実行されます。GitHub の Copilot Autofix に関するドキュメント では、この機能は「アラートに対する単一の修正提案を生成し、ユーザーが自らレビューして適用する」ものと説明されており、レビュー工程がこのケースで抜け落ちました。

ワークフローには、トリガーを制限しているように見えるガード条件も含まれていました:

if: (github.event_name == 'issues' && github.event.pull_request.user.login != 'whitesource-for-github-com[bot]')

Issue イベントでは github.event.pull_request は常に null になるため、比較は常に真となり、すべての GitHub ユーザーがこのゲートを通過できました。

An Agent on Each Side of the Exploit

Red Agent の最初の情報抽出試行は失敗しました。ペイロードは # コメント文字を使用して注入された行の残りを吸収しようとしましたが、コメントが TITLE=$(...) の閉じ括弧まで飲み込んでしまい、ランナーは実行せずに Bash の構文エラーを返しました。Wiz のレポートによると、エージェントはエラーを分析し、ペイロードを ; echo ' でシェルブロックを閉じる形に書き換えて再試行しました。

実行可能なペイロードは Issue タイトルとして配信され、ランナーの環境変数 JIRA_API_TOKENJIRA_USER_EMAILJIRA_BASE_URL を Base64 エンコードして curl で帯域外リスナーに送信しました。コールバックは数秒以内に Azure 上でホストされた GitHub Actions ランナーから到着しました。

取得したトークンは [email protected] として snowflakecomputing.atlassian.net に認証され、Snowflake のエンジニアリング、セキュリティコンプライアンス、バグバウンティ追跡プロジェクト全体に対する読み取り権限を持っていました。

Snowflake の修正は PR #1402 として 2026年6月23日にマージされ、安全な env: 変数と jq --arg パースパターンが復元されました。Jira トークンは 2026年6月24日に無効化・ローテーションされ、Wiz は概念実証テスト中にアクセスしたすべてのデータを安全に削除したと述べています。

「Snowflake は Wiz の責任ある報告と、当社の脆弱性開示およびバグバウンティプログラム(HackerOne)を通じた協力に感謝します」と同社は Wiz のレポートと共に公開した声明で述べました。「開示は 2026年6月23日に受領され、直ちに調査・修正が行われました。我々の調査では不正アクセスの証拠は見つかりませんでした」。

What the Five-Day Window Shows

この開示は、AI 補助による変更がレビューを通過する速度がそれに対するセキュリティ前提を上回るという、文書化されたパターンの真ん中に位置しています。Snowflake の独自監査ログがこのインシデントを可視化しており、同社はウィンドウ期間中に第三者がアクセスした証拠はなく、Wiz もそれを確認しました。監査ログ分析により、5日間のウィンドウ中に外部の第三者がエンドポイントにアクセスした形跡はありませんでした。

このタイムラインは、業界が仮説として扱ってきた一連の流れを圧縮しています。コードアシスタントがシェルインジェクション防止のために設置された防御パターンを、なぜそのパターンが存在したかの記録がないために削除しました。その結果を攻撃エージェントが数日で発見・武器化し、ライブエラー出力に対して自己修正的にエクスプロイトを調整しました。攻撃側はキーボードに人間がいない状態で実行され、コード側では AI が変更を生成し、人間が提案を適用してマージしました――まさにレビュー工程が失敗したケースです。

Wiz のレポートは、AI が生成したプルリクエストも人間のコードと同様の静的解析を通過させること、チームは資格情報の有効期間を自動発見速度に合わせて短縮すること、ガードレールはエージェントが構造化パーサーを直接文字列展開に置き換えることを防止すべきだと推奨しています。Check Point は 今夏、AI トラフィックのプロンプト検査をエンタープライズファイアウォールに組み込んだ と報告し、Unite.AI は エージェントサンドボックスからの脱出エージェントシステムが実際のプロダクション目標に到達する ことを、攻撃側が成熟するにつれて取り上げています。Snowflake のインシデントは CI パイプライン内部から語られた同じ物語であり、脆弱性は5日間稼働し、ケーススタディとして扱われる唯一の理由は、どちらのエージェントが先に到達したかという点にあります。

マイルズ・オカダは、Unite.AIのAI生成アナリストで、人工知能とサイバーセキュリティを扱い、特に新たな脅威、防御アーキテクチャ、自動化システムとの関係の変化に焦点を当てています。彼の仕事は、AIがセキュリティ運用をどのように変えているか、自律的な脅威検出と対応から対立的なAI技術の台頭までを調査しています。
技術的かつ調査的な視点から、マイルズはセキュリティ研究、インシデント開示、実世界での展開を分析して、AIが防御を強化する場所と、新たな脆弱性を導入する場所を理解しています。特に、モデルへの悪用、データの汚染、攻撃の自動化、そしてAIを搭載したシステムを大規模に保護することの運用上の現実に注目しています。
マイルズ・オカダによって執筆された記事は、AIによって生成され、Unite.AIの編集チームによって検証されており、急速に変化するAIセキュリティの状況について、正確性、厳格性、責任ある報道を保証しています。