GitLabの脆弱性CVE-2026-97229|悪用確認、コード実行のおそれと修正版・確認方法
開発・運用の基盤 / 公表 2026-10-13
条件によっては、認証されていない攻撃者にGitLabサーバー上で任意のコードを実行されるおそれ
対象:GitLab Community Edition(CE)・Enterprise Edition(EE)のセルフマネージド(CVE-2026-97229(関連:CVE-2026-93577・CVE-2026-110264))
修正版 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まで
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の正規表現エンジンでメモリが壊れ、サーバー上でコードを実行されるおそれがある
自社で運用するGitLabサーバー
出典 GitLab「GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8」(2026年10月12日)
02対象になるGitLab(CE/EE、セルフマネージド)
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日(米国時間)
10月21日(米国時間)
10月23日
10月29日(米国時間)
10月30日(米国時間)
出典 米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]
- Pumaのエラーログ(puma_stderr.log)に、Onigmo(正規表現のエンジン)の関数を経由したRubyの異常終了の報告([BUG])が無いか
- Workhorseのアクセスログに、/api/v4/projects/:id/ci/lint や /api/graphql へのPOSTが502(badgateway: failed to receive response: EOF)で終わった記録が無いか
- application_json.log に、CIの正規表現の安全確認が拒否した警告(regexp rejected at compile time など)が無いか
- graphql_json.log に、ciLint の変数として細工した正規表現({96000,} のような大きな繰り返しなど)が送られた記録が無いか
- api_json.log に、同じクライアントから ci/lint への5xxの応答が短い間に続いた記録が無いか
- リポジトリのパスに、255バイト近い長さで非ASCIIの文字を含む不審なものが無いか
- 細工した .gitlab-ci.yml をpushする経路では、Sidekiqのログに「A worker terminated, shutting down the cluster」が出て、パイプラインが作られていない記録が無いか
攻撃が成功するとワーカーが異常終了し、その要求はRailsのログ(api_json.log・graphql_json.log)に残らないことがあります。Workhorseのログも合わせて見ます。[7]
侵害の確認チェックリスト
チェックはこのブラウザにだけ残ります。保守の会社への依頼や作業の記録にも使えます。

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.1 | 19.5.3 |
| 19.4 | 19.4.2 | 19.4.3 | 19.4.5 |
| 19.3 | 19.3.5 | 19.3.6 | 19.3.7 |
| 19.2 | 19.2.8 | 19.2.9 | 19.2.10 |
| 19.1・19.0・18.11 | 対象に挙がっていない | 19.1.9・19.0.10・18.11.13 | 19.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も別に直っているため、どの系列も最新のパッチ版まで上げる
出典 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バージョンの確認方法と上げる手順
- 版を確かめる:Linuxパッケージで入れた場合は
sudo gitlab-rake gitlab:env:info、ソースから入れた場合はbundle exec rake gitlab:env:info RAILS_ENV=productionを実行し、「GitLab information」の Version を見ます。複数台の構成では、GitLab Railsが動くサーバーで実行します。[12] - 上げる:19.4.2などのパッチにはデータベースの移行が含まれます。1台構成では、移行が終わるまでGitLabが起動しないため停止時間が出ます。複数台の構成では、停止なしの手順で上げられます。[1]
- 反映を確かめる:上げた後に同じコマンドで版が修正版以上になったことを確かめます。[12]
- 保守の会社に頼むときは、GitLabのサーバーの台数と構成(1台か複数台か)、いまの版、上げる先の版、作業の前後でログを残しておくことを伝えます。
08すぐに上げられないとき
GitLabの告知に、CVE-2026-97229の回避策の記載はありません。GitLabは、対象の版を使うすべての環境をできるだけ早く最新の版に上げるよう強く勧めています。[1]
09Rubyで動くほかのアプリケーション



よくある質問
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]
出典・参考資料
- GitLab:GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.82026-10-12(米国時間) / 内容、対象の版と修正版、CVSS、GitLab.comとDedicatedの扱い、検知ルール6つ、データベースの移行
- 米CISA:CISA Adds Two Known Exploited Vulnerabilities to Catalog2026-10-29(米国の日付) / KEVへの追加
- CVE Program:CVE-2026-972292026-10-13公開(2026-10-30更新) / 影響範囲、CWE-190、CVSS
- 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の修正版、影響を受けるアプリケーションの条件
- 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の対象と修正版
- GitLab Security:Onigmo native worker crash(検知ルール)確認日 2026-11-02 / Pumaのエラーログの確認点、19.4.1の修正が不十分だった点
- GitLab Security:ci lint workhorse worker crash(検知ルール)確認日 2026-11-02 / Workhorseのログの確認点、細工した .gitlab-ci.yml の経路でのSidekiqの異常終了
- 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 も同じ場所)
- Rapid7:Add Exploit Module for GitLab RCE via CI Lint [CVE-2026-97229](Metasploit)2026-10-14提案・2026-10-30取り込み(米国の日付) / 攻撃用モジュールの公開、モジュールが前提とする条件
- 米CISA:Known Exploited Vulnerabilities Catalog(CVE-2026-97229)2026-10-29追加(対応期限 2026-11-01) / 悪用の確認、Forensic Triageの指定、Rubyの同じ問題でほかの製品も影響の可能性(KEVの備考)
- 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時点の各系列の最新版
- GitLab Docs:Maintenance Rake tasks(Gather GitLab and system information)確認日 2026-11-02 / 版の確認コマンド
あわせて読みたい記事
SharePointの脆弱性CVE-2026-65660|悪用確認・対象バージョンと更新
Microsoft SharePoint Serverの脆弱性CVE-2026-65660は、権限の低いアカウントでもサーバー上でコードを実行されるおそれがあり、悪用が確認されています。対象の3製品、修正のビルド、更新の入れ方をまとめます。
Cisco ASAの脆弱性CVE-2026-76418|FTDも対象、悪用確認、VPN経由の再起動と修正版
Cisco Secure Firewall ASA・FTDのリモートアクセスSSL VPNに、認証なしで機器を再起動させられる脆弱性CVE-2026-76418があり、悪用が確認されています。二次認証を設定した機器が対象で、修正版に上げます。

OSSのセキュリティリスクと対策|脆弱性・配布物の改ざん・SBOMによる管理
OSSのセキュリティリスクを、既知の脆弱性と配布物の乗っ取りに分けて解説する。Log4j・xz・Shai-Huludの事例から、間接依存まで含むSBOMの作り方、脆弱性情報と改ざん報告の照合、バージョン固定と更新の承認手順を示す。