Insecure GitHub Actions in Open Source Projects MITRE and Splunk Exposes Critical Vulnerabilities
2025/06/18 CyberSecurityNews — GitHub に対する包括的なセキュリティ調査により、主要な OSS リポジトリ全体にわたる GitHub Actions ワークフローにおいて、広範な脆弱性の存在が明らかになったが、その中には MITRE や Splunk といった組織が管理するリポジトリも含まれる。今回の発見が浮き彫りにするのは、これらのプロジェクトを潜在的なサプライチェーン攻撃や機密情報への不正アクセスにさらす、安全が確保されない CI/CD (Continuous Integration and Continuous Delivery) コンフィグレーションの懸念すべきパターンである。

これらの脆弱性は、GitHub Actions の pull_request_target トリガーの誤用に起因する。このトリガーは、外部コントリビューターからの、プルリクエストを処理するワークフローに対して、リポジトリ・シークレットへのアクセスと昇格された権限を付与する。
サンドボックス環境で動作する標準の pull_request イベントとは異なり、pull_request_target はターゲット・リポジトリのベース・ブランチのコンテキストで実行されるため、プロジェクト・インフラ全体を侵害する経路を、攻撃者に対して提供してしまう。
この根本的な設計の違いにより、攻撃者に対して、APIキー/デプロイメント認証情報/管理トークンへの不正アクセスを許すという、セキュリティ上の盲点が生じている。
このセキュリティ問題の影響範囲は、個別のインシデントを遥かに超え、数多くの著名な OSS プロジェクトに影響を及ぼすという、システム全体の問題となっている。
Sysdig のアナリストたち突き止めたのは、リポジトリ・メンテナーによる GitHub Actions のセキュリティ・モデルに関する根本的な誤解に、これらの脆弱性が起因することだ。それにより、外部の脅威に対して重要インフラを、意図せずにさらすコンフィグレーションにつながることだ。
これらのリスクに関する公開文書が、長年にわたって存在しているが、多くのプロジェクトにおいて、本番環境や組織の機密データに、攻撃者がダイレクトにアクセスできる、危険なワークフロー・パターンを実装し続けていることも、この研究チームは明らかにした。
この攻撃の手法は、自動化されたワークフロー・プロセス中に実行されるように設計された、細工されたコードを取り込んだ悪意のプルリクエストを送信することから始まる。
このリポジトリが pull_request_target イベントを利用し、コントリビューター・フォークからの信頼できないコードを確認すると、リポジトリのシークレットや高権限の GitHub トークンに対する、悪意のペイロードによるアクセス環境が作成される。
この組み合わせにより権限を昇格した攻撃者は、リポジトリの内容を変更し、侵害したプロジェクトに依存する下流の依存関係へ向けて、悪意のコードを伝播する可能性が生じるため、壊滅的な状況に陥る可能性がある。
これらの脆弱性が影響を及ぼす範囲は、個々のリポジトリに留まらず、OSS エコシステム全体の完全性と信頼性へといたる。
重要インフラのコンポーネントを、これらのプロジェクトに依存している組織は、サプライチェーン攻撃の脅威に直面する可能性がある。それと同時に、侵害されたリポジトリが、より広範な侵害の入り口となる可能性が生じる。
プルリクエスト・ターゲットの悪用メカニズム
前述の通り、これらの攻撃の技術的な基盤は、GitHub Actions の pull_request_target トリガー・メカニズムにある。コードのチェックアウト操作と、このトリガーの組み合わせにより、危険な実行コンテキストが作成される。
リポジトリ・シークレットにアクセスするプルリクエストは、ワークフローにより処理が停止されるように設計されているが、その実装は不適切にコンフィグされた場合には、このトリガーによる重大なセキュリティ・リスクが生じる。
具体的に言うと、”github.event.pull_request.head.ref” や “github.event.pull_request.head.repo.full_name” などのパラメータを使用するワークフローが、信頼できないコードを明示的にチェックアウトする際に、この脆弱性が発動する。つまり、外部のコントリビューターによる、特権実行環境への任意のコード挿入が可能になる。
研究者たちは、spotipy-dev/spotipyリポジトリを対象として、プロジェクトの setup.py ファイルを変更し、悪意のインストール・コマンドを取り込むことで、この脆弱性の悪用を実証した。
このエクスプロイトは、Python の setuptools 機能を悪用し、パッケージのインストール・プロセス中に任意のコードを実行するものだ。このコード・スニペットが示すように、シークレットがメモリから抽出され、外部サーバへと流出していく。
この悪意のセットアップ・コンフィグには、メモリダンプ・スクリプトをダウンロードして実行するカスタム・インストール・コマンドが取り込まれており、すべてのシークレットと GitHub トークンを、ワークフロー環境から収集する。
MITRE のサイバー・アナリティクス・リポジトリと、Splunk のセキュリティ・コンテンツ・リポジトリを、ほぼ同一の手法を用いて侵害することに、研究者たちは成功した。それにより、複数のリポジトリをまたぐ、このエクスプロイト・プロセスが、きわめて単純であることが証明された。
これらの成功したエクスプロイトにおいて抽出されたのは、リポジトリのコンテンツ/デプロイメント/パッケージ/セキュリティ・イベントへのアクセスを取り込んだ、包括的な書き込み権限を持つ高権限の GitHub トークンである。
このレベルのアクセスを悪用する攻撃者は、標的とするリポジトリを完全に侵害し、ソースコードの改変/リリースの操作などを達成し、ソフトウェア配布チャネルへの悪意のコンテンツ挿入を可能にする。
GitHub Actions における pull_request_target の誤用が、CI/CD 環境の安全性を見直す良い機会になりそうですね。MITRE や Splunk といった、信頼性の高い組織が影響を受けたことは、すべての開発者にとって他人事ではない出来事です。ご利用のチームは、ご注意ください。よろしければ、GitHub Actions で検索も、ご参照ください。
.webp)
You must be logged in to post a comment.