1 ポイント 投稿者 GN⁺ 2025-04-01 | 1件のコメント | WhatsAppで共有
  • 公開されたGitHubシークレット(Secret) により、GitHubの静的解析ツール CodeQLサプライチェーン攻撃に露出
  • 問題のキーは1.022秒間有効で、その間に攻撃者はGitHub Actionsワークフローで 任意コード実行が可能
  • この脆弱性は公開CVEとして登録済み: CVE-2025-24362

主な被害シナリオ

攻撃者はこの脆弱性を通じて、次のような攻撃を実行できた:

  • CodeQLを使用するリポジトリのソースコード流出(知的財産の侵害)
  • GitHub Actionsのシークレット窃取および二次攻撃の可能性
  • 内部インフラでCodeQLワークフローを通じたコード実行
  • GitHub Actions Cacheを使用するワークフローのシークレットまで窃取可能

攻撃の検知と実験過程

  • Praetorian研究チーム は、GitHub Actionsで生成される ワークフローアーティファクトに含まれたシークレット をスキャンするツールを開発
  • CodeQL関連リポジトリで シークレットを含むdebug artifact を発見
  • そのキーが有効な間に攻撃者がbranch/tagを作成し、ファイルをプッシュできることを証明する PoCツール artifact_racer.py を作成・実行

主要な実験結果

  • 攻撃者はそのトークンで:
    • 新しいブランチを作成
    • ファイルをプッシュ
    • タグを追加
  • CodeQLはデフォルトで v3 タグを参照しており、そのタグを攻撃者が上書きできた → すべてのCodeQL利用者に悪意あるコードを配布可能

拡散可能性: なぜ危険なのか?

  • ほとんどのユーザーはCodeQLを手動で設定せず、GitHubリポジトリ設定で "Enable CodeQL" ボタンをクリック
  • このとき自動設定されるワークフローは github/codeql-action リポジトリを参照し、v3タグベース
  • 攻撃者がv3タグを悪意あるコミットで上書きした場合、多数のプロジェクトで自動的に悪意あるコードが実行

追加の攻撃可能性: キャッシュ汚染(Cache Poisoning)

  • デフォルトのCodeQLワークフローは GitHub Actions Cacheを使用
  • これにより攻撃者は ビルドパイプラインに悪意あるキャッシュを注入 し、その後のワークフローで シークレット窃取および内部アクセスが可能
  • 代表的な被害対象:

GitHubの対応とパッチ

  • 2025年1月22日 に脆弱性が報告された後、GitHubは3時間以内に:
    • 脆弱なワークフローを停止
    • シークレットのアップロードを防ぐPRを登録
    • パッチ版を配布: CodeQL Action v3.28.3
  • 公式セキュリティ勧告: GHSA-vqf5-2xx6-9wfm

対応策

  • ワークフローでアーティファクトをアップロードする際は アップロード対象ファイルを制限 すること
  • 環境変数や .git/config_temp/ ディレクトリ内ファイルの混入に注意
  • GITHUB_TOKEN には 読み取り専用権限のみ付与
  • アップロード前に シークレットスキャンの実施を推奨Nosey Parker などのツールを活用)

結論

  • CodeQLのデフォルト設定だけでも 多数のプロジェクトがサプライチェーン攻撃に露出しうる
  • GitHub Actionsの セキュリティ脆弱性はいまなお深刻な脅威 であり、コミュニティの継続的な関心と防御戦略が求められる

関連情報

1件のコメント

 
GN⁺ 2025-04-01
Hacker Newsの意見
  • GitHubのイミュータブルなアクションがリリースされれば、攻撃の70%以上を解決できるだろうという意見がある
    • GitHubの毎週の問題が、これをリリースさせることになるだろうと考えている
  • 一時トークンが新しいデプロイを作成し、アーティファクト証明を生成する権限を持っていた理由についての言及がない
    • 問題解決のためにデバッグログは無効化したが、一時トークンの権限をコード分析エンジンにより適したものへ変更したのかについての回答はない
  • CIとCDは完全に分離された環境であるべきだという確信をますます強めている
    • CIの侵害がCD関連トークンの漏えいにつながるべきではない
  • GitHubの対応時間は非常に印象的だ
  • 姓がPraterの者として、praetorian.comを所有したいという意見がある
  • 公開GitHub Actionsを使うことは問題を引き起こしかねず、ワークフロー手順を分析せずに使うのはさらに危険だ
    • 代わりにwoodpeckerや、ほかの優れたCIビルダー(circle、travis、gitlab など)を使ってセルフホストすることを勧めている
  • OpenZFS PRでCodeQLを使っており、OpenZFSには問題がないことに言及している
    • OpenZFSのコードは秘密ではない
  • 問題が解決されたのか気にしている意見がある
  • サイトのパフォーマンスが悪すぎて、スクロールがほとんど不可能だという不満がある