GitLabの脆弱性CVE-2026-97229|悪用確認、コード実行のおそれと修正版・確認方法

公開 2026-11-02公表 2026-10-13資料確認 2026-11-02開発・運用の基盤の脆弱性 31件のまとめ

開発・運用の基盤 / 公表 2026-10-13

条件によっては、認証されていない攻撃者にGitLabサーバー上で任意のコードを実行されるおそれ

KEV米CISAが悪用を確認
01 使われている所自社で運用するGitLab(ソースコードの管理とCI/CD)

対象:GitLab Community Edition(CE)・Enterprise Edition(EE)のセルフマネージド(CVE-2026-97229(関連:CVE-2026-93577・CVE-2026-110264))

02 対象と修正版19.2〜19.2.7、19.3〜19.3.4、19.4〜19.4.1

修正版 19.4.2・19.3.5・19.2.8(11/2時点の最新は19.5.3・19.4.5・19.3.7・19.2.10ほか)

保守終了 19.2系:2026-10-15に終了・19.1系:2026-09-17に終了・19.0系:2026-08-20に終了・19.5系:2027-01-21まで・19.4系:2026-12-17まで

03 次にやること自社で確かめる順番

1 版を確かめ、使っている系列の最新のパッチ版に上げる

2 ログで攻撃の跡を調べる

出典 GitLab:GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8(2026-10-12(米国時間))

要点を、上司や保守の会社へのメール・チャットに貼れる文章でコピーします

GitLab CE/EEの脆弱性CVE-2026-97229は、CI/CD設定の細工した正規表現によって、条件によっては認証されていない攻撃者にGitLabサーバー上で任意のコードを実行されるおそれがあり、米CISAが2026年10月29日に悪用を確認した一覧(KEV)へ追加しました。対象は19.2〜19.4の系列で、19.4.2・19.3.5・19.2.8で直ります。自社で運用するGitLabの版を確かめて最新のパッチ版に上げ、ログで攻撃の跡を調べます。[1][2]

この記事の要点
  • CI/CD設定の正規表現の検証が足りず、細工した正規表現で整数オーバーフローが起き、条件によっては認証なしでサーバー上のコードを実行されるおそれがあります。CVSS v3.1は10.0(GitLab)です。[1][3]
  • 米CISAは2026年10月29日にKEVへ追加しました。攻撃用のMetasploitのモジュールは10月14日から公開の場で提案され、10月30日(米国時間)に取り込まれています。[10][9]
  • 対象は自社で運用する19.2〜19.4の系列です。GitLab.comとGitLab Dedicatedは修正済みです。[1]
  • 同じ種類の脆弱性CVE-2026-110264(7.0以降の幅広い版が対象)も10月21日に直っているため、使っている系列の最新のパッチ版まで上げます。[5]

01GitLabの脆弱性CVE-2026-97229で起きること

CVE-2026-97229は、GitLabがCI/CD設定の中の正規表現を十分に検証していないために起きる整数オーバーフロー(CWE-190)で、条件によっては認証されていない攻撃者にGitLabサーバー上で任意のコードを実行されるおそれがあります。GitLabは深刻度をCritical、CVSS v3.1の基本値を10.0としています。[1][3]

原因は、GitLabが使うRubyの正規表現エンジン(Onigmo)で、細工したパターンをコンパイルするとメモリが壊れることです。GitLabは、自社で同梱するRubyに修正を当てて直しました。[4]

CI/CD設定に細工した正規表現を送られると、GitLabが使うRubyの正規表現エンジンでメモリが壊れ、サーバー上でコードを実行されるおそれがある

認証されていない攻撃者CI/CD設定に細工した正規表現を入れて送る
細工した正規表現

自社で運用するGitLabサーバー

CI/CD設定の検証正規表現を十分に検証していない
Rubyの正規表現エンジン(Onigmo)細工したパターンのコンパイルで整数オーバーフローが起き、メモリが壊れる
条件がそろうと
サーバー上で任意のコードを実行される深刻度Critical、CVSS v3.1 10.0

出典 GitLab「GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8」(2026年10月12日)

02対象になるGitLab(CE/EE、セルフマネージド)

対象は、自社で運用するGitLab CE/EEの19.2〜19.4の系列です。GitLabの告知は配布の形(Linuxパッケージ、ソースからの導入、Helm チャートなど)を挙げておらず、この場合はすべての形が対象です。[1]

GitLab.comはすでに修正済みの版で動いており、GitLab Dedicatedも告知の前に修正済みです。[1]

03悪用の状況

米CISAは2026年10月29日(米国時間)に、悪用の証拠に基づいてCVE-2026-97229をKEVへ追加し、米連邦政府機関の対応期限を11月1日としました。KEVでは、更新の前に侵害の有無を調べる対象(Forensic Triage)にも指定されています。[2][10]

悪用の確認とは別に、攻撃用のコードも公開されています。CI Lintを使ってGitLabでコードを実行するMetasploitのモジュールは、2026年10月14日に公開の場で提案され、10月30日(米国時間)に取り込まれました。[9]

修正版の公開から17日後にKEVへ追加され、翌日には10月14日から公開されていた攻撃用のMetasploitモジュールが取り込まれた

10月12日(米国時間)

GitLabが19.4.2・19.3.5・19.2.8を公開CVE-2026-97229を修正

10月21日(米国時間)

19.5.1ほか各系列の版を公開同じ種類のCVE-2026-110264を修正

10月23日

Rubyが正規表現のコンパイルの修正を公表

10月29日(米国時間)

米CISAがKEVへ追加
KEV米連邦政府機関の対応期限は11月1日

10月30日(米国時間)

CI Lint経由でコードを実行するMetasploitのモジュールが取り込まれる10月14日から公開の場で提案されていた

出典 米CISA「Known Exploited Vulnerabilities Catalog(CVE-2026-97229)」(2026年10月29日)

2026年11月2日に確認した時点で、JPCERT/CCとIPAの注意喚起の一覧にこの脆弱性はありません。

04外から届くGitLabがあるか

GitLabは、条件によっては認証されていない攻撃者がコードを実行できるとしています。条件の詳細は公開していません(GitLabは脆弱性の課題を修正の90日後に公開します)。[1]Metasploitのモジュールの説明では、公開プロジェクトにpushできる利用者のアカウントで細工したCI設定とリポジトリのパスを置き、そのうえで認証なしのCI Lintの要求を送ると、GitLabのgitアカウントの権限でコマンドが動きます。[9]

インターネットや取引先から届き、外部の人がアカウントを作れる・公開プロジェクトがあるGitLabほど急ぎます。社内のGitLab(本番・検証・部署ごとのもの、クラウド上に立てたものを含む)を一覧にし、それぞれの版と、外から届くかを書き出します。

05攻撃を受けていないかの確認

GitLabは、自社で運用するGitLab向けに、この脆弱性を狙った攻撃の試みを見つけるための検知ルールを6つ公開しています。[1]それぞれ、次のログの記録を手がかりにします。[6][7][8]

  1. Pumaのエラーログ(puma_stderr.log)に、Onigmo(正規表現のエンジン)の関数を経由したRubyの異常終了の報告([BUG])が無いか
  2. Workhorseのアクセスログに、/api/v4/projects/:id/ci/lint や /api/graphql へのPOSTが502(badgateway: failed to receive response: EOF)で終わった記録が無いか
  3. application_json.log に、CIの正規表現の安全確認が拒否した警告(regexp rejected at compile time など)が無いか
  4. graphql_json.log に、ciLint の変数として細工した正規表現({96000,} のような大きな繰り返しなど)が送られた記録が無いか
  5. api_json.log に、同じクライアントから ci/lint への5xxの応答が短い間に続いた記録が無いか
  6. リポジトリのパスに、255バイト近い長さで非ASCIIの文字を含む不審なものが無いか
  7. 細工した .gitlab-ci.yml をpushする経路では、Sidekiqのログに「A worker terminated, shutting down the cluster」が出て、パイプラインが作られていない記録が無いか

攻撃が成功するとワーカーが異常終了し、その要求はRailsのログ(api_json.log・graphql_json.log)に残らないことがあります。Workhorseのログも合わせて見ます。[7]

侵害の確認チェックリスト

チェックはこのブラウザにだけ残ります。保守の会社への依頼や作業の記録にも使えます。

緊急の場合AI攻撃リスク即点検サービス公開情報と、契約後すぐに用意できるアクセスの記録から先に調べ、被害や狙われやすい構成がないかを早く確かめます。

06対象バージョンと修正版

CVE-2026-97229の対象は19.2〜19.2.7、19.3〜19.3.4、19.4〜19.4.1で、19.2.8・19.3.5・19.4.2で直ります。[1][3]ただし、同じ種類の脆弱性CVE-2026-110264(認証なしのコード実行、CVSS 10.0)が7.0以降の幅広い版を対象に10月21日に直っています。[5]使っている系列の最新のパッチ版まで上げます。

系列CVE-2026-97229の修正版CVE-2026-110264の修正版11/2時点の最新
19.5対象に挙がっていない19.5.119.5.3
19.419.4.219.4.319.4.5
19.319.3.519.3.619.3.7
19.219.2.819.2.919.2.10
19.1・19.0・18.11対象に挙がっていない19.1.9・19.0.10・18.11.1319.1.10・19.0.11・18.11.14

GitLabのセキュリティチームは、19.4.1に入っていたCVE-2026-93577の修正が不十分で、CVE-2026-97229で回避されたとしています。19.4.1で止めず、上の版に上げます。[6]最新の版は[11]で確かめます。

19.4.1の修正は回避され、同じ種類のCVE-2026-110264も別に直っているため、どの系列も最新のパッチ版まで上げる

CVE-2026-97229の修正版
19.5対象に挙がっていない
19.419.4.2(19.4.1の修正は不十分)
19.319.3.5
19.219.2.8
19.1・19.0・18.11対象に挙がっていない
CVE-2026-110264の修正版
19.519.5.1
19.419.4.3
19.319.3.6
19.219.2.9
19.1・19.0・18.1119.1.9・19.0.10・18.11.13
11/2時点の最新
19.519.5.3
19.419.4.5
19.319.3.7
19.219.2.10
19.1・19.0・18.1119.1.10・19.0.11・18.11.14
だから 使っている系列の最新のパッチ版まで上げる。

出典 GitLab「GitLab Patch Release and Security Update: 19.5.3, 19.4.5, 19.3.7, 19.2.10, 19.1.10, 19.0.11, 18.11.14」(2026年10月29日)

07バージョンの確認方法と上げる手順

  1. 版を確かめる:Linuxパッケージで入れた場合は sudo gitlab-rake gitlab:env:info、ソースから入れた場合は bundle exec rake gitlab:env:info RAILS_ENV=production を実行し、「GitLab information」の Version を見ます。複数台の構成では、GitLab Railsが動くサーバーで実行します。[12]
  2. 上げる:19.4.2などのパッチにはデータベースの移行が含まれます。1台構成では、移行が終わるまでGitLabが起動しないため停止時間が出ます。複数台の構成では、停止なしの手順で上げられます。[1]
  3. 反映を確かめる:上げた後に同じコマンドで版が修正版以上になったことを確かめます。[12]
  4. 保守の会社に頼むときは、GitLabのサーバーの台数と構成(1台か複数台か)、いまの版、上げる先の版、作業の前後でログを残しておくことを伝えます。

08すぐに上げられないとき

GitLabの告知に、CVE-2026-97229の回避策の記載はありません。GitLabは、対象の版を使うすべての環境をできるだけ早く最新の版に上げるよう強く勧めています。[1]

09Rubyで動くほかのアプリケーション

米CISAは、同じRuby(Onigmo)の整数オーバーフローの問題で、GitLab以外の製品も影響を受ける可能性があるとしています。[10]Rubyの開発チームは2026年10月23日に、修正を含むRuby 4.0.9・3.4.12・3.3.13を公開しました。[4]

Rubyの開発チームによると、影響を受けるのは、攻撃者が操作できる文字列から正規表現を作るアプリケーション(Regexp.new などに入力を渡すもの)だけです。Regexp.timeout や、パターンの長さの制限では防げません。上げられない場合は、信頼できない入力から正規表現を作らないよう求めています。[4]

脆弱性の公表・更新一覧 2026年10月版の表紙
資料(無料)脆弱性の公表・更新一覧 2026年10月版60日間の公表・更新と、悪用が確認された脆弱性を分析し、どこから直すかの考え方と確認の手順をまとめた資料です。

よくある質問

GitLab.comを使っています。対象ですか?

いいえ。GitLab.comはすでに修正済みの版で動いており、GitLab Dedicatedも修正済みです。対象は自社で運用するGitLabです。[1]

GitLab 19.1以前は対象ですか?

CVE-2026-97229の対象には挙がっていません。ただし、同じ種類のCVE-2026-110264は7.0以降が対象で、19.1.9・19.0.10・18.11.13で直っているため、使っている系列の最新のパッチ版に上げます。[3][5]

GitLabのバージョンはどう確認しますか?

Linuxパッケージで入れた場合は sudo gitlab-rake gitlab:env:info を実行し、「GitLab information」の Version を見ます。[12]

19.4.1に上げてあれば大丈夫ですか?

いいえ。19.4.1はCVE-2026-97229の対象で、19.4.2で直ります。19.4.3ではCVE-2026-110264も直っているため、19.4系列の最新に上げます。[1][5]

GitLab Runnerも上げる必要がありますか?

CVE-2026-97229はGitLab本体(CE/EE)の脆弱性で、対象として挙がっているのはGitLab CE/EEの版です。[1]

出典・参考資料

  1. GitLab:GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.82026-10-12(米国時間) / 内容、対象の版と修正版、CVSS、GitLab.comとDedicatedの扱い、検知ルール6つ、データベースの移行
  2. 米CISA:CISA Adds Two Known Exploited Vulnerabilities to Catalog2026-10-29(米国の日付) / KEVへの追加
  3. CVE Program:CVE-2026-972292026-10-13公開(2026-10-30更新) / 影響範囲、CWE-190、CVSS
  4. Ruby:Regexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-1102642026-10-23 / 原因(Onigmo)、Rubyの修正版、影響を受けるアプリケーションの条件
  5. GitLab:GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.132026-10-21(米国時間) / 関連するCVE-2026-110264の対象と修正版
  6. GitLab Security:Onigmo native worker crash(検知ルール)確認日 2026-11-02 / Pumaのエラーログの確認点、19.4.1の修正が不十分だった点
  7. GitLab Security:ci lint workhorse worker crash(検知ルール)確認日 2026-11-02 / Workhorseのログの確認点、細工した .gitlab-ci.yml の経路でのSidekiqの異常終了
  8. GitLab Security:ci regexp guard rejection ほか3件(検知ルール)確認日 2026-11-02 / application_json.log・graphql_json.log・api_json.log・リポジトリのパスの確認点(graphql_cilint_hostile_regexp、ci_lint_scripted_client_error_burst、ci_regexp_oversized_non_ascii_path も同じ場所)
  9. Rapid7:Add Exploit Module for GitLab RCE via CI Lint [CVE-2026-97229](Metasploit)2026-10-14提案・2026-10-30取り込み(米国の日付) / 攻撃用モジュールの公開、モジュールが前提とする条件
  10. 米CISA:Known Exploited Vulnerabilities Catalog(CVE-2026-97229)2026-10-29追加(対応期限 2026-11-01) / 悪用の確認、Forensic Triageの指定、Rubyの同じ問題でほかの製品も影響の可能性(KEVの備考)
  11. GitLab:GitLab Patch Release and Security Update: 19.5.3, 19.4.5, 19.3.7, 19.2.10, 19.1.10, 19.0.11, 18.11.142026-10-29(米国の日付) / 11/2時点の各系列の最新版
  12. GitLab Docs:Maintenance Rake tasks(Gather GitLab and system information)確認日 2026-11-02 / 版の確認コマンド

あわせて読みたい記事

メール・共同作業公開 2026-11-02

SharePointの脆弱性CVE-2026-65660|悪用確認・対象バージョンと更新

Microsoft SharePoint Serverの脆弱性CVE-2026-65660は、権限の低いアカウントでもサーバー上でコードを実行されるおそれがあり、悪用が確認されています。対象の3製品、修正のビルド、更新の入れ方をまとめます。

ファイアウォール・UTM公開 2026-11-02

Cisco ASAの脆弱性CVE-2026-76418|FTDも対象、悪用確認、VPN経由の再起動と修正版

Cisco Secure Firewall ASA・FTDのリモートアクセスSSL VPNに、認証なしで機器を再起動させられる脆弱性CVE-2026-76418があり、悪用が確認されています。二次認証を設定した機器が対象で、修正版に上げます。