October 30, 2026

GitLabの深刻な欠陥は、2件ある――10月12日の修正版では足りない理由と、確認す⁠る⁠こ⁠と

GitLabの脆弱性(CVE-2026-97229)が、2026年10月29日に、米国のCISAの「悪用が確認された脆弱性(KEV)」のカタログに登録されました。要対処の期限は、米国の連邦機関に対して、11月1日です。「フォレンジックのトリアージ(侵害の有無の調査)が必要」とも付けられています(CISAのKEVのデータを、私が直接確⁠認⁠)⁠。

自社でGitLabを運用している(GitLab.comではなく、自分たちのサーバーに入れている)会社は、この記事を、確認の手がかりにしてください。確認できた事実と、確認できていない点を分けて、一次情報を軸に整理しています。情報は、2026年10月30日の時点のものです。同じ月に、CISAのKEVへ入った、VPNやメールゲートウェイなどの機器は、今月、悪用が確認された「入口の機器」にまとめてい⁠ま⁠す⁠。

日本語で出回っている情報には、原文と異なる訳や要約が、かなり見受けられます。この記事は、一次情報を私たちも原文で確認して書いていますが、読者の皆さんも、各社の原文でのご確認をお勧めします。出典は、各記述のそばに示してい⁠ま⁠す⁠。

要点

  • 欠陥は、GitLabが、CI/CDの設定に書かれた正規表現を処理する部分にあります。細工した正規表現で、認証なしに、サーバー上でコードを実行できる可能性があります。深刻度は、GitLabの評価で、CVSS 10.0(最高)です(GitLa⁠b⁠)⁠。
  • 同じ系統の、深刻度10.0の欠陥が、9日の間隔で、2件出ています。10月12日のCVE-2026-97229と、10月21日のCVE-2026-110264です。10月12日の修正版(19.4.2、19.3.5、19.2.8)は、後の1件の影響を、受けたままです(GitLa⁠b⁠)⁠。
  • 上げるなら、10月21日の修正版(19.5.1、19.4.3、19.3.6、19.2.9など)以降にし⁠ま⁠す⁠。
  • KEVに登録されたのは、先に出た、CVE-2026-97229のほうです。CVE-2026-110264は、10月29日のCISAのデータには、ありま⁠せ⁠ん⁠。
  • 修正の本体は、GitLabのコードではなく、Rubyの正規表現エンジン(Onigmo)にあります。GitLabの公式パッケージは、同梱するRubyを直していますが、自前のイメージなどは、Rubyも直さないと、残り⁠ま⁠す⁠。
  • 悪用の中身(誰が、どこを、何件)は、公開されていません。実際の被害を、時系列で公開した当事者は、Alpine Linux⁠で⁠す⁠。

何が起⁠き⁠た⁠か

日付(2026年) 出来事 出典
10月12日 GitLabが、CVE-2026-97229の修正版を公開(19.4.2、19.3.5、19.2.8)。深刻度は10.0。見つけたのは、joaxcar氏(HackerOne経由) GitLab
10月13日 Rapid7が、注意喚起を公開。のちに、技術的な分析も追加(10月16日) Rapid7
10月20〜21日 Alpine Linuxの自前のGitLabに、攻撃者がアカウントを登録(20日)。翌21日に、本格的な攻撃 Alpine Linux
10月21日 GitLabが、CVE-2026-110264の修正版を公開(19.5.1、19.4.3、19.3.6、19.2.9、19.1.9、19.0.10、18.11.13)。深刻度は10.0。7.0以降の全版が対象 GitLab
10月23日 Rubyが、修正版を公開(4.0.9、3.4.12、3.3.13) Ruby
10月27〜28日 Alpineが、修正版に上げたあとも、脆弱なままだったことに気づき(26日)、サーバーを再構築(27〜28日) Alpine Linux
10月29日 CISAが、CVE-2026-97229をKEVに登録 CISAのKEVのデータ

欠陥は、全部で4⁠つ⁠あ⁠る

Rubyの告知によると、GitLabが報告した、Rubyの正規表現エンジンの欠陥は、3つです。GitLabは、これに対して、4つのCVEを出しています(Rub⁠y⁠)⁠。

GitLabのCVE Rubyの欠陥 Rubyで直った最初の版
CVE-2026-89078 構文の解析が失敗したときの、二重解放 4.0.0、3.4.12、3.3.13
CVE-2026-93577、CVE-2026-97229 正規表現を変換したあとの、大きさの桁あふれ 4.0.8、3.4.12、3.3.13
CVE-2026-110264 繰り返しが多い正規表現での、内部IDの桁あふれ 4.0.9、3.4.12、3.3.13

Rubyの4.0.8には、CVE-2026-97229の修正は入っていますが、CVE-2026-110264の修正は、入っていません。Ruby 3.4と3.3は、今回の修正が入った、最初の版が、3.4.12と3.3.13です。Ruby 3.2以前には、修正がありません(Rub⁠y⁠)⁠。

Rubyは、この件で、自分のCVEを取っていません(「少なくとも、今は」としています)。そのため、Rubyのバージョンだけで、脆弱性を照合するスキャナーでは、見逃すことがあります。Rubyは、GitLabのCVEの番号を、追うよう勧めています(Rub⁠y⁠)⁠。

製品が同梱する部品の欠陥は、製品の番号だけでは見えません。同じ週のBrotliの欠陥も、Node.jsや.NETなどが同梱する部品の問題で⁠し⁠た⁠。

どこが、影響を受け⁠る⁠の⁠か

  • 自社で運用しているGitLab(CE、EE)。CVE-2026-97229は、19.2から19.4の、修正前の版が対象です。CVE-2026-110264は、7.0以降の全版が対象です(GitLa⁠b⁠)⁠。
  • GitLab.comは、修正済みです。GitLab Dedicatedも、修正済みの内部リリースで、動いています(GitLa⁠b⁠)⁠。
  • GitLab以外でも、ユーザーが入力した文字列から、正規表現を作っているRubyのアプリは、対象になりえます。開発者が書いた正規表現だけを使っているアプリは、対象外です。CISAも、同じ根本の欠陥が、ほかの製品にも及びうる、と注記しています(Ruby、CISAのKEVのデー⁠タ⁠)⁠。

攻撃の入口は、GitLabの評価では「認証なし」ですが、Rapid7の検証では、攻撃者が、悪意のあるCI設定を、公開プロジェクトに置ける必要があります。誰でも登録できる設定では、この条件が、なくなります(Rapid⁠7⁠)⁠。

悪用は、どこまで⁠確⁠か⁠か

項目 内容 確度
CISAのKEV登録 10月29日。CVE-2026-97229のみ。期限は11月1日。フォレンジックのトリアージが必要。攻撃者や標的は、示されていない 一次(CISAのKEVのデータ)
GitLabの告知 10月12日と、10月21日の告知には、悪用が確認された、という記載がない。検知ルールは、公開している 一次(GitLab 10/12、GitLab 10/21)
実際の攻撃の報告 Alpine Linuxの自前のGitLabで、10月21日に、ワーカーが8回クラッシュし、うち4回は、攻撃が途中まで進んだ。成功の証拠は、見つかっていない 一次(当事者の報告。Alpine Linux)
公開の攻撃コード Rapid7が、公式の19.4.1で、コード実行を再現した。修正版の19.4.2では、動かなかった 二次(Rapid7)
CVE-2026-110264の悪用 悪用が確認された、という一次情報は、私は確認できていません 未確認

まとめると、「CVE-2026-97229は、CISAが悪用として登録し、当事者の攻撃の報告もある。CVE-2026-110264は、同じ系統で、より新しく、悪用の報告は確認できていない」と言えます。ただし、後の1件も、先に出た修正版では直らないため、同時に直すほうが安全⁠で⁠す⁠。

Alpine Linuxの事例が教え⁠る⁠こ⁠と

Alpine Linuxは、自前のGitLabを運用していて、今回の攻撃を受けた当事者として、経緯を公開しています(Alpine Linu⁠x⁠)⁠。

  • 10月13日に、修正版のつもりで、19.3.4へ上げた(修正が入っていたのは、19.3⁠.⁠5⁠)
  • 10月22日に、19.3.6へ上げたが、自前のイメージでは、直っていな⁠か⁠っ⁠た
  • 10月26日に、まだ脆弱だと気づき、27日に、サーバーを再構築。28日に、パスワードのリセットと、秘密鍵の交換まで⁠終⁠え⁠た
  • 成功した攻撃は、ログに痕跡を残さないため、成功の有無は、確かめられなかった。そのため、侵害されたものとして、⁠扱⁠っ⁠た

原因について、Alpineは、修正が、GitLabのコードではなく、GitLabが同梱するRubyへのパッチにあるため、と説明しています。GitLabの公式パッケージでは、同梱するRubyにパッチが当たっています。Alpineは、標準のRubyで、イメージを作っていたため、GitLabを上げても、直りませんでした。Rubyの告知も、GitLabが、同梱するRubyにパッチを当てて、自社のリリースで直している、と書いています(Rub⁠y⁠)⁠。

Alpineの攻撃者は、アカウントを登録して、探りを入れてから、本格的に攻撃し、コンテナイメージも、取得していました。Alpineは、自分たちのビルドに合わせて、調整していた可能性がある、と見てい⁠ま⁠す⁠。

いま、や⁠る⁠こ⁠と

1. 自社のGitLabの版と、入れ方を確⁠認⁠す⁠る

次のコマンドで、GitLabの版が分かります(Omnibus版の場⁠合⁠)⁠。

sudo gitlab-rake gitlab:env:info

目指す版は、次のとおり⁠で⁠す⁠。

系統 最低限の修正版
19.5 19.5.1
19.4 19.4.3
19.3 19.3.6
19.2 19.2.9
19.1 19.1.9
19.0 19.0.10
18.11 18.11.13

一覧にない、古い系統には、修正版がありません。一覧の系統まで、上げる必要があります(出典:GitLab)。10月12日の修正版(19.4.2、19.3.5、19.2.8)で止まっている場合は、もう一度、上げてくだ⁠さ⁠い⁠。

2. 入れ方で、Rubyの扱いが⁠変⁠わ⁠る

  • GitLabの公式パッケージや、公式のイメージなら、GitLabを、上の版以降へ上げれば、同梱のRubyも直⁠り⁠ま⁠す
  • 自前でイメージを作っている、OS標準のRubyを使っている、などの場合は、Rubyを、3.3.13、3.4.12、4.0.9以降にします。GitLabだけを上げても、直り⁠ま⁠せ⁠ん
  • Ruby 3.2以前は、修正がありません。3.4か4.0へ移⁠り⁠ま⁠す

3. 更新できないときの、つなぎ⁠の⁠対⁠処

安全にはなりません。時間稼ぎ⁠で⁠す⁠。

  • 匿名での、公開プロジェクトへのアクセスを、制⁠限⁠す⁠る
  • 信頼できない利用者が、公開プロジェクトを作ったり、書き込んだりできないよう⁠に⁠す⁠る

どちらも、Rapid7が示した、攻撃の入口を、ふさぐだけです。欠陥そのものは、直りません(Rapid7)。GitLabの告知には、回避策がありま⁠せ⁠ん⁠。

4. 侵害⁠の⁠確⁠認

CISAは、フォレンジックのトリアージが必要としています。更新の前後で、次の点を、確認してくだ⁠さ⁠い⁠。

  • GitLabのワーカーが、不自然にクラッシュしていないか。502のエラーや、CIジョブの失敗が、急に増えていないか(Alpineの場合の、攻撃の途中で起きた⁠こ⁠と⁠)
  • 見覚えのないアカウントの登録や、公開プロジェクトの作成が⁠な⁠い⁠か
  • GitLabが公開している、検知ルールが使える環境なら、有効にする。「Onigmo native worker crash」(ワーカーのクラッシュ)が、今回の中心です(GitL⁠a⁠b⁠)
  • 外向きの通信や、データベースへの接続の記録が、残っているか。Alpineは、14日より長く、ログを残すよう勧めて⁠い⁠ま⁠す

成功した攻撃は、クラッシュも、Webのログも、残さないことがあります。疑わしい場合は、Alpineと同じく、再構築と、パスワードのリセット、秘密鍵の交換まで、考えてください。成功した場合に、取られうる情報として、Alpineは、パスワードのハッシュ、メールアドレス、2要素認証の秘密情報、CI/CDの変数、ランナーのトークン、Webhookの認証情報、非公開のリポジトリなどを、挙げてい⁠ま⁠す⁠。

やってはいけな⁠い⁠こ⁠と

  • 10月12日の修正版で、終わりにしない。10月21日の欠陥は、直ってい⁠ま⁠せ⁠ん
  • GitLabだけを上げて、安心しない。自前のRubyや、イメージは、Rubyも直す必要があ⁠り⁠ま⁠す
  • Rubyのバージョンだけで、スキャナーの結果を信じない。Rubyは、自分のCVEを取ってい⁠ま⁠せ⁠ん
  • ネットで見つけた攻撃コードを、本番で試⁠さ⁠な⁠い

未確⁠認⁠の⁠点

  • CISAは、誰が、どこで、何件、悪用したかを、示していません。悪用の中身は、分かり⁠ま⁠せ⁠ん
  • CVE-2026-110264の悪用が確認された、という一次情報は、私は確認できていません。GitLabの検知ルールの名前から、入口の一つに、Org形式のファイルの表示が関係すると読めますが、告知の本文には、書かれてい⁠ま⁠せ⁠ん
  • Alpineの経緯の記述には、修正が入った版について、食い違いがあります(時系列では19.3.5、本文では19.3.4に修正がないと書く箇所)。GitLabの告知では、CVE-2026-97229の修正版は、19.3.⁠5⁠で⁠す
  • Alpineの確認は、10月22日までのコミットと、10月24日までのパッケージが対象です。10月27日までへの、拡大の結果は、私は確認できてい⁠ま⁠せ⁠ん
  • 最初の2つのCVE(CVE-2026-89078、CVE-2026-93577)の、GitLab側の告知は、私は読んでいません。Rubyの告知の記載に、基づいて⁠い⁠ま⁠す

関⁠連⁠記⁠事

自社の環境で、GitLabの版の確認や、更新、侵害の確認でお困りの方は、お問い合わせくだ⁠さ⁠い⁠。

無料セキュリティ相談を⁠受⁠付⁠中

ただいま、セキュリティについての無料相談を受け付けています。「自社のサイトは大丈夫か」「何から確認すればよいか」など、お気軽にご相談ください。

Super Sonic DesignではWebサイトの制作やアプリのデザインなどのご相談を承っております。どうぞお気軽にお問い合わせください。
お問い合わせ
他の最新記事
カテゴリー