GitLab のゼロデイ脆弱性 CVE-2026-97229 が FIX:RCE の PoC コードも登場

PoC Exploit Released for Critical GitLab RCE Vulnerability (CVE-2026-97229)

2026/10/16 CyberSecurityNews — GitLab の CI/CD 機能に存在する深刻な脆弱性 CVE-2026-97229 に対して、セキュリティ研究者の Jonah Burgess が概念実証 (PoC) コードを公開した。この脆弱性は、CI/CD の正規表現コンパイラで発生する整数オーバーフロー欠陥であり、悪用された場合には、脆弱な GitLab サーバ上での任意のコマンド実行に至る可能性がある。GitLab は、この問題を Critical に分類し、CVSS スコア 10.0 と評価している。エクスプロイト・コードがすでに一般公開されているため、未修正の組織は速やかに対応する必要がある。

GitLab の深刻な脆弱性 CVE-2026-97229 に対する PoC が公開

今回公開された PoC は、GitLab Community Edition (CE) および Enterprise Edition (EE) を対象としている。

研究者である Jonah Burgess によると、公開されたエクスプロイトは、公式の Linux amd64 向け GitLab CE 19.4.1 イメージを使用して検証された。この攻撃には、GitLab の CI/CD 設定ファイルを検証する CI lint エンドポイントが利用される。

攻撃には公開プロジェクトへのブランチのプッシュ権限が必要

この PoC には、重要な攻撃条件がある。攻撃者にとって必要なものは、影響を受ける GitLab インスタンス上で、公開プロジェクトにブランチをプッシュできる権限である。この PoC は、CI lint エンドポイントに対してリクエストを送信する。このリクエストには、認証トークン/Cookie/認証ヘッダーなどは含まれない。

つまり、PoC の攻撃経路では、最初にプロジェクトへの書き込み権限が必要となる一方で、CI lint への後続リクエストは認証情報を付けずに送信される。ただし、GitLab への書き込み権限を一切持たない外部攻撃者が、無条件に脆弱性を悪用できることを意味するものではない。

Jonah Burgess は、この PoC により実行されるコマンドについて、GitLab の git アカウントの権限で動作すると説明しており、管理者権限で実行されるわけではない。また、公開された PoC は初期リリース版であり、影響を受ける構成や、悪用可能な経路の存在などについて、引き続き調査を進めているという。

CI/CD 正規表現コンパイラの整数オーバーフローが原因

GitLab のセキュリティ・アドバイザリによると、脆弱性 CVE-2026-97229 は CI/CD の正規表現コンパイラに存在する整数オーバーフローの欠陥である。

この PoC で悪用されるのは、攻撃者が制御するブランチに配置された、細工済みのパイプライン設定を CI lint が読み込む際の処理である。このタイミングで、特別な名前を持つリポジトリ内のパスに対して、正規表現の処理が実行される。

問題となるのは、Unicode を含むリポジトリパスの処理である。PoC に添付された説明によると、特定の Unicode パスが存在する場合において、GitLab によるサイズ検証の後に、Ruby が正規表現を再コンパイルする。この処理により整数オーバーフローが発生すると、エクスプロイトの作成者は説明している。

その結果として、正規表現エンジンの実行フローが不正に変更され、最終的にコマンド実行機能へ到達するという。この一連の処理が、脆弱な GitLab サーバ上でのコマンド実行につながるとされている。

Jonah Burgess が公開した PoC リポジトリによると、通常のテスト・リクエストは HTTP 502 エラーで終了する。その理由は、コマンド実行後に GitLab のワーカー・プロセスがクラッシュする点にある。

ただし、HTTP 502 エラーが発生したことだけでは、脆弱性の悪用に成功したとは判断できない。研究者が実施したテストでは、コールバックを通じてコマンドの出力が返されたことから、コマンドが実行されたと判断されている。

大量のメモリ消費によるサービス停止のリスク

今回の PoC には、いくつかの制約もある。

  • 公開されているエクスプロイトの構成は、特定の GitLab ビルドを対象としている。
  • 実行には大量のメモリが必要となる。
  • メモリが不足している環境では、正常に動作しない可能性がある。
  • 複数のリクエストを同時に実行した場合には、サービスに障害が発生する恐れがある。

メモリ不足や同時リクエストにより、コマンド実行ではなくサービスの中断が発生する可能性についても、PoC の作成者は警告している。そのため、公開された PoC が、すべての影響対象環境で同じように動作することが確認されたわけではない。

影響を受ける GitLab のバージョン

脆弱性 CVE-2026-97229 は、GitLab CE/EE の以下のバージョンに影響する。

製品影響を受けるバージョン修正済みバージョン
GitLab CE/EE 19.2系19.2.8より前19.2.8
GitLab CE/EE 19.3系19.3.5より前19.3.5
GitLab CE/EE 19.4系19.4.2より前19.4.2

2026年10月12日の時点で、これらの修正済みバージョンを GitLab は公開している。セルフマネージド環境で GitLab を運用している組織に対して、同社が強く推奨するのは、速やかなアップグレードである。

GitLabの提供形態に応じって、必要とされる対応は異なるものとなる。

GitLabの提供形態対応状況
セルフマネージドGitLab CE/EE修正済みバージョンへのアップグレードが必要
GitLab.com修正済みバージョンを適用済み
GitLab Dedicated顧客側での対応は不要

セルフマネージド環境の管理者にとって必要なことは、現時点で利用している GitLab バージョンを確認した上で、該当する系列の修正済みバージョンもしくは、それ以降のサポート対象バージョンへアップグレードすることである。

CI/CD 設定ファイルとプロジェクト・ブランチ変更履歴の確認

前述のとおり、今回の脆弱性は、CI/CD 設定ファイルや正規表現の処理に関連している。そのため、GitLab 管理者に推奨されるのは、修正プログラムを適用するだけではなく、最近の設定変更について確認することである。

特に、以下の項目を重点的に確認する必要がある。

  1. GitLab のバージョン確認し、修正済みリリースへアップグレードする。
  2. CI/CD 設定ファイルの変更履歴パイプライン設定に、不審な変更が加えられていないか確認する。
  3. 新規/変更された正規表現 CI/CD 設定内で、新たに追加された正規表現や、既存の正規表現に対する変更を確認する。
  4. プロジェクト/ブランチにおいて、最近になって作成/変更されたブランチを確認し、想定外の変更を調査する。

GitLab の CI/CD 機能は、開発とビルド・デプロイの自動化に使用されるため、関連する設定ファイルやパイプライン処理に対する変更を適切に管理することが重要となる。

過去における GitLab のセキュリティ・アップデートに関する報告も、こうしたコンポーネントの安全性を確認する上で参考になる。

公開 PoC により更新の重要性が高まる

今回公開された PoC は、実際のサイバー攻撃で CVE-2026-97229 が悪用されていることを証明するものではない。

現時点で確認できるのは、研究者が特定の GitLab ビルドを用いて検証を実施し、コマンド実行を示す結果を得たということだ。その一方で、今回の脆弱性には以下のような重要な特徴がある。

項目内容
CVE IDCVE-2026-97229
深刻度Critical(重大)
CVSSスコア10.0
脆弱性の種類CI/CD正規表現コンパイラの整数オーバーフロー
想定される影響脆弱なサーバー上でのコマンド実行
PoCの公開状況公開済み
PoCで必要なアクセス条件公開プロジェクトへのブランチのプッシュ権限
PoCでのコマンド実行権限GitLabのgitアカウント
修正プログラム公開日2026年10月12日
実際の攻撃での悪用原文では確認されていない

特に重要なのは、プロジェクトへの書き込み権限を起点として、脆弱な GitLab サーバ上でのコマンド実行に至る経路が公開されている点である。

この PoC には、特定のビルドへの依存やメモリ要件などの制約があるが、CVSS スコアが 10.0 と評価されていることに加え、エクスプロイト・コードが公開されたことから、未更新のセルフマネージド環境での対策を優先する必要がある。

GitLab 管理者にとって重要なことは、修正済みバージョンへのアップグレードを速やかに実施した上で、CI/CD 設定ファイルやプロジェクト・ブランチに不審な変更がないかどうかを確認することである。