本文へ移動
情シスのミカタ
ニュース約7分で読めます

GitLabのCVE-2026-97229に悪用の確認 米CISAの期限は11月1日

米CISAは2026年10月29日、GitLab CE・EEのCI/CDの正規表現の脆弱性CVE-2026-97229を、悪用が確認された脆弱性の一覧(KEV)に加えました。修正版の公開から17日です。米国の連邦機関の期限は11月1日で、侵害の調査も求められています。修正版、Rubyの版、GitLabが出した6つの検知と、調べる手順をまとめます。

公開 情シスのミカタ編集部AIにより執筆編集部が確認:
文字
GitLabのCVE-2026-97229に悪用の確認 米CISAの期限は11月1日

この記事のまとめ

  • 米CISAは2026年10月29日、GitLab CE・EEのCVE-2026-97229を、悪用が確認された脆弱性の一覧(KEV)に加えました。CI/CDの設定の細工した正規表現で、ログインなしでGitLabのサーバーでコードを実行できる脆弱性で、深刻度はCVSS 3.1で10.0です。
  • 米国の連邦機関の期限は11月1日の3日後で、修正版を当てる前に侵害されていなかったかを調べることも求められています。修正版は10月12日の19.4.2、19.3.5、19.2.8です。GitLabを自前のRubyで動かしているなら、Ruby 3.3.13、3.4.12、4.0.9以降も要ります。
  • GitLabは、悪用の試みを見つけるための検知を6つ公開しています。ワーカーの異常な終了やCI Lintへの不審な要求などで、10月13日の実証コードの公開以降の記録を、更新や作り直しの前に残して調べます。
こんな方に#30代#40代#50代実務

修正版が出てから17日で、GitLabのCI/CDの脆弱性は「悪用あり」に変わりました。米国のCISAは10月29日、GitLab CE・EEのCVE-2026-97229を、悪用が確認された脆弱性の一覧(KEV)に加えました。CI/CDの設定に細工した正規表現を入れると、ログインしていない攻撃者がGitLabのサーバーでコードを実行できるという脆弱性で、深刻度はCVSS 3.1で最大の10.0です。

KEVの記載では、米国の連邦機関の期限は11月1日です。修正版を当てる前に侵害されていなかったかを調べる「侵害の調査」も、あわせて求められています。社内でGitLabを動かしている会社は、版を確かめるだけでなく、10月半ばからの記録を残して見直す段階に入りました。

CISAの発表『CISA Adds Two Known Exploited Vulnerabilities to Catalog』(Release Date: October 29, 2026)。悪用の証拠に基づき、KEVに2件を加えたとし、CVE-2026-97229 GitLab Community Edition and Enterprise Edition Integer Overflow or Wraparound vulnerabilityと、CVE-2026-76418 Cisco Secure Firewall ASA Software and Cisco Secure FTD Software Unchecked Return Value to NULL Pointer Dereference Vulnerabilityが並ぶ
CISAの10月29日の発表。GitLabとCiscoの2件をKEVに追加出典: CISA「CISA Adds Two Known Exploited Vulnerabilities to Catalog」(引用)

修正から17日で「悪用あり」に

この脆弱性は、10月12日のGitLabの緊急の修正版で直りました。その翌日には、セキュリティ会社のRapid7が、修正前のGitLabでコードの実行を再現したと公表しています。

日付 できごと
10月12日 GitLabが19.4.2、19.3.5、19.2.8を公開
10月13日 Rapid7が、修正前の19.4.1でコードの実行を再現したと公表
10月20〜21日 Alpine LinuxのGitLabが攻撃を受け、ワーカーが8回落ちる(10月28日の公表)
10月23日 Rubyが正規表現の修正を入れた4.0.9、3.4.12、3.3.13を公開
10月29日 CISAがKEVに追加
11月1日 米国の連邦機関の期限

経緯の前半は、GitLabが重大脆弱性を修正、自社管理環境は即時更新を確認にまとめています。Alpine Linuxの件とRubyの修正は、Rubyの正規表現の脆弱性、GitLabに攻撃の試み 自前のRubyは4.0.9などへにあります。CISAは、どこで誰が悪用したのかを書いていません。KEVの記載では、ランサムウェアでの利用は「不明」です。

期限は3日、侵害の調査つき

KEVへの追加から期限までは3日です。米国の連邦機関には、CISAの指令(BOD 26-04)の手引きに沿って、パッチの前に証拠を残し、侵害されていなかったかを調べることも求めています。調べる順番は、前日のKEVの記事の表にまとめた6段階と同じです(Linuxの「Fragnesia」とESXの脆弱性がKEVに 米機関の期限は3日と14日)。

KEVは、同じ根の問題がほかの製品にもありうると注記しています。CI/CDの正規表現の処理に使われる、RubyのOnigmoの整数のあふれです。

同じ10月29日には、CiscoのASA・FTDの脆弱性もKEVに入りました。リモートアクセスVPNで機器を再起動させられるもの(CVE-2026-76418)です。こちらも期限は11月1日ですが、侵害の調査は求められていません。中身はCisco ASAとFTDのVPNに悪用中の脆弱性 二次認証の設定で再起動させられるにあります。

直ったかどうかは、版の末尾とRubyで見る

GitLabの告知の対象の版は、下の表のとおりです。19.3系では、19.3.4は修正の入る前の版で、19.3.5に差し替わっています。10月21日には、さらに次の緊急の修正版も出ているので、上げるなら使っている系列の最新版にします。

GitLabの告知『GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8』のCVE-2026-97229の節。CI/CDの設定の細工した正規表現で、ログインしていない利用者がGitLabのサーバーで任意のコードを実行できた問題を直した。影響する版は19.2の19.2.8より前、19.3の19.3.5より前、19.4の19.4.2より前。CVSS 10.0。続く節『Detecting CVE-2026-97229 Exploitation Attempts』で、セルフマネージドの利用者向けに6つの検知(Onigmo native worker crash、Graphql cilint hostile regexp、ci regexp oversized non ascii path、ci regexp guard rejection、ci lint workhorse worker crash、ci lint scripted client error burst)を公開し、GitLab.comとGitLab Dedicatedは修正済みとしている
GitLabの告知のCVE-2026-97229の節と、6つの検知出典: GitLab「GitLab Critical Patch Release: 19.4.2, 19.3.5, 19.2.8」(引用)

もう1つの落とし穴は、Rubyです。この脆弱性の修正は、GitLabが公式のパッケージに同梱するRubyへの手直しでした。ソースから作ったGitLabや、自前のコンテナのイメージで標準のRubyを使っている場合は、GitLabを上げても直りません。Rubyも、表の修正版以降が要ります。Alpine Linuxは、まさにこの理由で、GitLabを上げたあとも脆弱なままでした。

確かめるもの 足りている状態
GitLab 19.4系 19.4.2以降(できれば最新版)
GitLab 19.3系 19.3.5以降。19.3.4は不可
GitLab 19.2系 19.2.8以降
自前のRubyで動かす場合のRuby 3.3.13、3.4.12、4.0.9以降
GitLab.com・GitLab Dedicated GitLabが修正済みとしている

GitLabが出した6つの検知

GitLabは告知の中で、セルフマネージドの利用者向けに、悪用の試みを見つけるための検知を6つ公開しています。名前から読み取れる中身は次のとおりです。検知の本文はGitLab.comの公開のリポジトリにあります。

検知の名前 名前が示すもの
Onigmo native worker crash Onigmoの処理の途中で、ワーカーのプロセスが落ちる
Graphql cilint hostile regexp GraphQLのCI Lint(CIの設定の検査)に、悪意のある正規表現が送られる
ci regexp oversized non ascii path CIの設定の正規表現に、異常に長い非ASCIIの文字列が入る
ci regexp guard rejection 正規表現の防御の処理が、要求を断った
ci lint workhorse worker crash CI Lintの要求のあとに、Workhorseのワーカーが落ちる
ci lint scripted client error burst スクリプトのような送り手から、CI Lintのエラーが続けて返る

Alpine LinuxのGitLabでは、新しく作られたアカウントが細工したCIの設定を送り、ワーカーが8回落ちていました。上の1つ目や5つ目に当たる形です。Alpineは、成功した攻撃は落ちた跡もWebのログも残さないとして、跡が無いことを侵害が無かった証拠にはしていません。

影響するのは、自社で動かすGitLab

対象は、自社のサーバーやクラウドで動かすセルフマネージドのGitLab CE・EEです。インターネットから届くGitLabほど急ぎます。社内のネットワークだけで使っていても、取引先や委託先が入れる、社員の端末からVPNで届く、という形なら、攻撃者が中に入った後の足場になりえます。

GitLab.comとGitLab Dedicatedは、GitLabが修正済みとしています。GitLab Runnerだけを社内で動かしている場合は、GitLabの本体が対象で、Runnerの更新はこの件の告知に含まれていません。

11月1日までに進める手順

  1. 社内のGitLabを一覧にし、版、Rubyを同梱した公式のパッケージかどうか、インターネットから届くかを書き出します。委託先が運用しているGitLabも含めます。
  2. 版が足りないもの、または自前のRubyが古いものは、更新や作り直しの前に記録を残します。写す先は、GitLabの外の場所です。GitLabの記録の手引きにある主な記録(注)を、10月13日以降の分だけでも写しておきます。
  3. 写した記録で、ワーカーの異常な終了、CI Lintへの続けざまの要求、10月中旬以降に作られた見慣れないアカウントを探します。GitLabの6つの検知を、監視の仕組みに入れられるか、監視の担当に相談します。
  4. 修正版に上げます。自前のRubyで動かしているなら、Rubyも3.3.13、3.4.12、4.0.9以降にします。
  5. 跡が見つかった、または記録が残っていなくて否定できないときは、乗っ取られたものとして扱います。Runnerのトークン、CI/CDの変数、デプロイの鍵、外部の連携のトークン、利用者のパスワードと2要素認証の設定を替える計画を立てます。

最後の判断が、いちばん重い作業です。Alpine Linuxは、記録が足りずに侵害を否定できなかったため、GitLabを一から作り直しました。社内のGitLabでも、記録を何日分、どこに残しているかで、取れる選択肢が変わります。

注: GitLabの記録の手引きにある主な記録です。Railsの記録(production_json.log、api_json.log、auth_json.log、exceptions_json.log)、Pumaの記録(puma_stderr.log)、Sidekiqとgitlab-workhorseの記録を写します。

よくある質問

QGitLab.comを使っているだけでも、対象ですか。

AGitLabは、GitLab.comとGitLab Dedicatedは修正済みとしています。対象は、自社のサーバーやクラウドで動かしているセルフマネージドのGitLab CE・EEです。

Q10月12日の時点で19.3.4に上げました。足りていますか。

A足りません。この脆弱性が直ったのは19.3.5です。19.3.4には別の不具合があり、19.3.5に差し替わっています。19.3系を使うなら、19.3.5以降の最新版に上げてください。

QKEVの期限は、日本の会社にも適用されますか。

A期限と侵害の調査の求めは、米国の連邦政府の機関に向けたものです。日本の会社に義務はありません。ただ、CISAが悪用を確認したことは、更新の順番を決める目安になります。

出典・参考

編集部が確認:。確認した監修者は、この下に載せています。

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(解説)

法令・官公庁の発表・企業の公式発表などの一次情報を調べて、情シス向けの解説・比較・テンプレの記事を書きます。数字と日付は出典と照らして確かめ、記事の最後に出典を載せています。使っているAI: Anthropic Claude。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が一次情報を調べて書き、機械の検査を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします