GitHub RCE脆弱性: CVE-2026-3854の詳細解析
9時間前原文(www.wiz.io)
概要
- Wiz ResearchがGitHubの内部gitインフラに重大な脆弱性(CVE-2026-3854)を発見
- 認証済みユーザーが標準gitクライアントのみでサーバー上で任意コマンド実行可能
- GitHub.comとGitHub Enterprise Server両方が影響、特にGHESは完全なサーバー乗っ取りが可能
- GitHub.comは6時間以内に修正、GHESは即時アップグレード推奨
- AIを活用したバイナリ解析により発見、今後の脆弱性調査の新たな潮流を示唆
GitHub内部gitインフラにおける重大脆弱性(CVE-2026-3854)概要
-
Wiz ResearchがGitHubの内部gitインフラにおける危険な脆弱性を発見
-
CVE-2026-3854は、認証済みユーザーが単一のgit pushコマンドでGitHubのバックエンドサーバー上で任意コマンド実行可能
-
標準のgitクライアントのみで攻撃が成立する容易なエクスプロイト性
-
GitHub.comでは共有ストレージノード上でのリモートコード実行(RCE)が可能
-
**GitHub Enterprise Server(GHES)**ではサーバー完全乗っ取り、全リポジトリや内部シークレットへのアクセスが可能
- 数百万件のパブリック・プライベートリポジトリが影響範囲
- クロステナント影響も確認
-
GitHubは6時間以内にGitHub.comを修正し、GHES向けにはパッチを公開
-
GHES利用者は直ちに3.19.3以降へのアップグレードが必須
-
Wizによる詳細な技術解説と修正手順はGitHub公式セキュリティブログに掲載
技術的詳細と攻撃手法
-
GitHub内部のgit push処理パイプラインは複数のサービスで構成
- babeld:エントリポイント兼gitプロキシ、認証情報の受け渡し
- gitauth:認証・権限確認・セッションごとのセキュリティポリシー返却
- gitrpcd:内部RPCサーバー、X-Statヘッダーを解析
- pre-receive hook:Go製バイナリ、セキュリティポリシーの強制
-
重要な連携はX-Statヘッダーで実現
- セミコロン区切りのkey=value形式、同一キーは後勝ち(last-write-wins)
- push option値がサニタイズされずにX-Statヘッダーへコピーされる設計ミス
- 任意のセミコロン挿入で新たなフィールドを攻撃者が注入可能
-
特に危険なフィールド
- rails_env:hook実行パス(サンドボックス or 直実行)の切り替え
- custom_hooks_dir:カスタムフックスクリプトのベースディレクトリ
- repo_pre_receive_hooks:実行するpre-receive hookの定義
-
エスカレーション手順
- rails_envを非production値に注入→サンドボックス回避
- custom_hooks_dirで任意ディレクトリ指定
- repo_pre_receive_hooksでパストラバーサル付き定義を注入
- 任意バイナリをgitユーザー権限でサンドボックス外実行
-
GitHub.comでは初期状態でカスタムフック実行が無効化(enterpriseモードフラグがfalse)
- しかし、このフラグもX-Statヘッダー経由で注入可能
- 最終的にGitHub.comでもRCE成立を確認
影響範囲・リスク
- GHES:サーバー完全乗っ取り、全リポジトリ・内部情報の漏洩リスク
- GitHub.com:共有ノード上のクロステナントアクセス
- gitユーザーの権限で他組織・他ユーザーのリポジトリ読み取り可能
- Wizは自社テストアカウントのみで検証、実際の他者データアクセスは未実施
必要な対応・推奨事項
- GitHub.com利用者:追加対応不要(既に修正済み)
- GHES利用者:
- 直ちに3.19.3以降へアップグレード
- 脆弱性のあるバージョン:<= 3.19.1, 3.14.2, 3.15.19, 3.16.15, 3.17.12, 3.18.6
- Wiz Threat Centerのクエリで脆弱なGHESインスタンスの特定が可能
AI活用による調査と今後の展望
- WizはAI支援リバースエンジニアリング(IDA MCP利用)により調査を自動化
- 従来は困難だったブラックボックスバイナリ解析も効率化
- AIが脆弱性発見の新たな潮流となる可能性
- GitHubはWizの協力と専門性を高く評価、バグバウンティ最高クラスの報奨を授与
まとめと今後の教訓
- GitHubのような多層・多言語サービス連携では、入力値の信頼性・一貫性が極めて重要
- サービス間のデータ受け渡しにおけるサニタイズ不足が深刻な脆弱性に直結
- AIを活用した自動解析・バグハンティングの重要性増大
- 継続的な研究者・プラットフォーマー間の協力がセキュリティ向上の鍵