AWS CodeBuild Misconfiguration Exposed GitHub Repos to Potential Supply Chain Attacks
2026/01/15 TheHackerNews — Amazon Web Services (AWS) の CodeBuild における深刻なミスコンフィグにより、AWS JavaScript SDK を含むクラウドサービス・プロバイダー独自の GitHub リポジトリが完全に乗っ取られ、すべての AWS 環境が危険にさらされるという可能性があった。この脆弱性は、クラウド・セキュリティ企業 Wiz により CodeBreach というコードネームで呼ばれている。この脆弱性は、2025年8月25日の責任ある情報開示を受け、2025年9月に AWS により修正された。

研究者の Yuval Avrahami/Nir Ohfeld は、「CodeBreach を悪用する攻撃者は、悪意のコードを挿入してプラットフォーム全体に侵入する可能性がある。それにより、SDK に依存する無数のアプリケーションだけではなく、コンソール自体にも影響が生じ、すべての AWS アカウントが脅かされる可能性がある」と、The Hacker News に共有されたレポートの中で述べている。

この脆弱性は CI (Continuous Integration:継続的インテグレーション) パイプラインの欠陥に起因すると、Wiz は述べている。それにより、未認証の攻撃者がビルド環境に侵入し、GitHub 管理者トークンなどの特権認証情報を漏洩させる。続いて、それを悪用する攻撃者は、侵害したリポジトリに悪意の変更をプッシュすることで、サプライチェーン攻撃への道筋を作り出す可能性があった。
言い換えると、特定のイベントのみが CI ビルドをトリガーするよう AWS が導入していた Webhook フィルターが、この脆弱性により弱体化されていた。たとえば AWS CodeBuild では、コード変更が特定ブランチにコミットされた場合にのみ、また、GitHub/GitHub Enterprise Server のアカウント ID (ACTOR_ID) が正規表現パターンに一致した場合にのみ、ビルドがトリガーされるよう設定できる。これらのフィルターは、信頼できない Pull Request から保護する目的で使用されていた。
このミスコンフィグは、Pull Request に対してビルドの実行を設定する、以下の AWS 管理オープンソース GitHub リポジトリに影響していた。
- aws-sdk-js-v3
- aws-lc
- amazon-corretto-crypto-provider
- awslabs/open-data-registry
ACTOR_ID フィルターを実装する、4つのプロジェクトには致命的な欠陥が存在していた。正規表現における完全一致の保証のために必要な、開始アンカー “^” と終了アンカー “$ “が含まれていなかった。そのため、承認済み ID のスーパー文字列 (例: 755743) に該当する GitHub ユーザー ID がフィルターを回避し、ビルドをトリガーできる状況にあった。
GitHub はユーザー ID を数値で連番付与するため、新規ユーザー ID (当時は 9 桁) が信頼されるメンテナーの 6 桁 ID を約5日ごとに上回ることを予測できたと、Wiz は説明している。例を挙げると、信頼できる ID が “123456” だった場合に、アンカーがないと攻撃者の ID “226123456” も末尾に “123456” を含んでいるため、一致するものだとみなされてしまう。この “部分一致” の許容が、認証の壁を無効化してしまう。
この知見と、GitHub Apps を用いるアプリ作成の自動化 (対応するボットユーザー生成) を組み合わせることで、数百件の新規ボットユーザー登録を誘発し、ターゲット ID (例: 226755743) を生成できた。
したがって攻撃者は、該当アクター ID を用いることでビルドをトリガーし、aws-sdk-js-v3 の CodeBuild プロジェクトに保存される GitHub 認証情報である、リポジトリに対する完全な管理者権限を持つ aws-sdk-js-automation ユーザーの個人アクセストークン (PAT) を取得できる状況だった。

この昇格した権限を用いる攻撃者は、メイン・ブランチへの直接プッシュ、/Pull Request の承認/リポジトリのシークレット窃取を行い、最終的にサプライチェーン攻撃の準備を整えることが可能であった。
AWS は公開したアドバイザリの中で、「対象リポジトリの AWS CodeBuild Webhook フィルターにおいて、信頼できるアクター ID を制限するための正規表現の設定が不十分であり、予測可能なアクター ID により管理者権限が取得可能となっていた」と説明している。
さらに同社は、「これは CodeBuild サービス自体の欠陥ではなく、各リポジトリ固有の Webhook アクター ID フィルターのミスコンフィグに起因するものである」とも述べている。
Amazon は、「当該問題の修正に加え、認証情報のローテーションや、GitHub トークンなどメモリ内認証情報を含むビルド・プロセスのセキュリティ強化手順といった、追加の緩和策を実装した。また、CodeBreach が実環境で悪用された証拠は確認されていない」と強調した。
このリスクを軽減するためには、信頼できないコントリビューションが特権 CI/CD パイプラインをトリガーしないようにする必要がある。具体的には、Pull Request Comment Approval ビルドゲートの有効化/CodeBuild ホストランナーの利用による GitHub ワークフロー経由のビルド管理/Webhook フィルターの正規表現がアンカーされていることの確認/CodeBuild プロジェクトごとに固有の PAT の生成/PAT 権限の最小限の制限/CodeBuild 統合専用の非特権 GitHub アカウント利用などの検討が挙げられる。
Wiz の研究者は、「この脆弱性を悪用する攻撃者は、CI/CD 環境を標的とする典型な例である。微妙で見落とされやすい欠陥だが、悪用された場合の影響は極めて大きい。複雑性/信頼できないデータ/特権認証情報の組み合わせは、事前アクセス不要の高影響侵害を引き起こす完全な嵐を作り出す」と指摘している。
CI/CD パイプラインのセキュリティが問題視されるのは、今回が初めてのことではない。前年には Sysdig の調査により、pull_request_target トリガーに関連付けられた安全でない GitHub Actions ワークフローが悪用され、特権 GITHUB_TOKEN が漏洩し、単一の Pull Request により数十のオープンソース・プロジェクトが侵害され得ることが示された。
さらに Orca Security による分析では、Google/Microsoft/NVIDIA などの Fortune 500 企業のプロジェクトにおいても、安全でない pull_request_target が確認され、任意コード実行/機密情報窃取/悪意のコードや依存関係の信頼ブランチへのプッシュが可能だったことが明らかにされている。この現象は pull_request_nightmare と呼ばれている。
セキュリティ研究者 Roi Nisimi は、「pull_request_target 経由でトリガーされるミスコンフィグ・ワークフローを悪用すると、信頼できないフォーク元 Pull Request から、GitHub ホスト型/セルフホスト型ランナー上での RCE へとエスカレーションが可能になる」と指摘している。
彼は、「pull_request_target を使用する GitHub Actions ワークフローは、適切な検証なしに信頼できないコードをチェックアウトしてはならない。これを行った場合には、完全な侵害に至るリスクがある」と警告している。
AWS JavaScript SDK などのクラウド利用の根幹を支える重要なプログラムの GitHub リポジトリが、第三者に完全に乗っ取られる可能性があったことが明らかになりました。この問題の原因は、プログラムを自動で組み立てる仕組み (CI/CDパイプライン) において、誰の変更を受け付けるのかを判定するフィルターの設定が不十分だったことにあります。具体的には、信頼できるユーザー ID を識別するための正規表現に、開始と終了を固定する記号 (アンカー) が抜けていました。このため、信頼できる ID の末尾に別の数字を付け足しただけの “偽の ID” であってもフィルターをすり抜けてしまい、攻撃者が用意した悪意あるプログラムを、AWS のビルド環境で実行させることが可能な状態でした。すでに、この脆弱性は修正されていますが、ご利用のチームは、ご注意ください。よろしければ、AWS での検索結果も、ご参照ください。
You must be logged in to post a comment.