概要
- 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を活用した自動解析・バグハンティング の重要性増大
- 継続的な 研究者・プラットフォーマー間の協力 がセキュリティ向上の鍵