GitLab CE/EEの未認証コード実行の脆弱性CVE-2026-110264
GitLabの2026年10月21日の発表では、GitLab CE/EEに、細工した正規表現のコンパイル時の整数オーバーフローにより、一定の条件の下で未認証の利用者がサーバー上で任意のコードを実行できるおそれのある脆弱性CVE-2026-110264があった[1]。GitLabはセルフマネージドの全環境をただちに修正版へ更新するよう強く勧め、GitLab.comは修正済みの版で稼働している[1]。
脆弱性の内容
| 項目 | 値 | 資料 |
|---|---|---|
| CVSS | 10.0(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H、GitLabの評価) | [1] |
| CWE(CVE記録) | CWE-190(Integer Overflow or Wraparound) | [5] |
| CWE(検知ルールの説明) | CWE-94、CWE-787 | [2] |
| 悪用されたときの影響 | gitユーザーとしてのリモートコード実行(Org-modeの経路は未認証) | [2] |
| 窃取の対象 | gitlab-secrets.jsonのインスタンスの秘密情報、全CI/CD変数、Runnerのトークン、アクセストークン | [2] |
| ほかの影響 | インスタンスの全リポジトリの読み書き、攻撃中のワーカーのクラッシュとサービスの低下 | [2] |
| 報告の経路 | HackerOneのバグ報奨金制度 | [1] |
GitLabの告知は、同じ修正版で直したセキュリティの問題を計12件〔注1〕挙げ、深刻度がCriticalのものはCVE-2026-110264だけだった[1]。
Org-modeの描画の経路
GitLabが公開した検知ルール「Org mode render error burst」の説明によると、GitLabは.orgファイルをorg-rubyのgem(0.9.12)で描画している[3]。gemは独自のTODOのキーワードをエスケープして選択肢を組むが、照合した生のキーワードを2つ目の正規表現に埋め込む[3]。要求の本文でヒープの配置を操作すると、gitユーザーとしてのsystem()の呼び出しに至る[3]。攻撃には、.orgのペイロードを置ける公開プロジェクトが1つあればよい[3]。
GitLabはもう1つの検知ルール「Onigmo native worker crash」で、攻撃者が#+TODOの行で指定したキーワードの繰り返しが32,767を超えると、Onigmoが符号付き16ビットの上限を超える繰り返しIDを割り当てると説明した[2]。その結果、照合時に範囲外書き込みが起きる[2]。
Onigmo側の不具合
Rubyの開発チームの10月23日の告知では、元の不具合は「繰り返しの多いパターンでの内部IDのオーバーフロー」(Rubyの変更#16801)だった[4]。不具合に到達するのは、攻撃者が制御する文字列から正規表現をコンパイルするアプリケーションだけである[4]。Regexp.timeoutは防御にならず、パターンの長さの制限も確実な防御にならない[4]。GitLabは同梱するRubyにパッチを当てて自社の版で対処し、CVE-2026-89078、CVE-2026-93577、CVE-2026-97229、CVE-2026-110264の4件を割り当てた[4]。
先行する同種の脆弱性
GitLabの検知ルール「Onigmo native worker crash」の説明によると、このルールはCIの経路でコンパイル時にオーバーフローするCVE-2026-93577とCVE-2026-97229も対象にする[2]。Org-modeの描画の経路とCIの経路のどちらも、正規表現の仮想機械がバッファの外で動く結果になる[2]。
The Hacker Newsは、同じ報告者がGitLabの正規表現エンジンで報告したコード実行の脆弱性は、1か月で今回が4件目だと報じた[11]。19.2より前の版に及んだのは、そのうち今回が初めてだと伝えた[11]。GitLabが10月12日に同じく未認証の正規表現のコンパイラのオーバーフローCVE-2026-97229を、9月23日にログインしたアカウントを要するCVE-2026-93577とCVE-2026-89078を修正したとも報じた[11]。
NVDの記録によると、CISAは10月29日にCVE-2026-97229を既知の悪用された脆弱性(KEV)のカタログに加えた[13]。
時系列
| 日付 | 主体 | 内容 | 資料 |
|---|---|---|---|
| 2026年 | GitLab | CE/EEの修正版と、悪用の試みを検知するルール2つを公開した | [1] |
| 2026年 | GitLab | CNAとしてCVE記録を公開した | [5] |
| 2026年 | カナダ・サイバーセキュリティセンター | 注意喚起AV26-1074を出した | [8] |
| 2026年 | Censys | 注意喚起を公開した | [9] |
| 2026年 | Rubyの開発チーム | Onigmoの不具合を修正した4.0.9、3.4.12、3.3.13を公開した | [4] |
| 2026年 | JPCERT/CC | Weekly Reportで「GitLabに複数の脆弱性」を取り上げた | [7] |
| 2026年 | CISA | 先行する同種の脆弱性CVE-2026-97229をKEVのカタログに加えた | [13] |
| 2026年 | CVE Program | CVE記録にRubyの告知を参照として加えた | [5] |
| 2026年 | Shadowserver | 脆弱なインスタンスの追跡数を投稿した | [10] |
対象の製品と版
| 製品 | 影響を受ける版 | 修正版 | 資料 |
|---|---|---|---|
| GitLab CE/EE(18.11系まで) | 7.0以降、修正版より前の全版 | 18.11.13(バックポート) | [1] |
| GitLab CE/EE 19.0系 | 修正版より前の全版 | 19.0.10(バックポート) | [1] |
| GitLab CE/EE 19.1系 | 修正版より前の全版 | 19.1.9(バックポート) | [1] |
| GitLab CE/EE 19.2系 | 修正版より前の全版 | 19.2.9(バックポート) | [1] |
| GitLab CE/EE 19.3系 | 修正版より前の全版 | 19.3.6 | [1] |
| GitLab CE/EE 19.4系 | 修正版より前の全版 | 19.4.3 | [1] |
| GitLab CE/EE 19.5系 | 修正版より前の全版 | 19.5.1 | [1] |
ITmedia NEWSは、7.0は約12年前の2014年6月に公開された版だと報じた[12]。
GitLabは、GitLab Dedicatedでは19.3.5-internal0と19.4.2-internal0以降で稼働するテナントが修正を含み、対応は要らないと説明した[1]。
The Hacker Newsは、GitLabが通常修正するのは現行と直前の2つの月次の版で、修正版のうち4つはそれより古い版だと報じた[11]。10月12日の更新を当てたインスタンスも、再び影響の範囲に入るとした[11]。
Censysの10月21日の推計では、インターネットに露出したGitLabサーバーの半数超が、独自の修正版の無い7か月より古い系列で動いている[9]。現行より3つ以上前のメジャー版で動くものは、4分の1超とした[9]。
悪用の状況
Censysの10月22日の注意喚起では、同社のRapid Responseチームは実環境での悪用を把握しておらず、公開の概念実証も無かった[9]。同じ日にCVE-2026-110264の名を付けたGitHubのリポジトリが2つ現れた[9]。1つは作者の説明では関連するCVE-2026-97229を実装したもので削除され、もう1つは中身を消された[9]。
CISAはCVE記録に加えたSSVCの評価で、Exploitationをnone、Automatableをyes、Technical Impactをtotalとした[5]。NVDの記録は10月31日の更新でも、CISAのKEVへの追加を示す欄を持たない[6]。
Censysは公表の日に、GitLabを動かすホストを約82,000、Webプロパティを約209,000観測した[9]。修正前の全版が影響を受けるため、実質的にその全体が範囲に入るとした[9]。攻撃面に脆弱な可能性のあるインスタンスを持つ顧客には、Censysから通知した[9]。
Shadowserverの11月1日の投稿では、追跡しているCVE-2026-110264に脆弱なインスタンスは11300超だった[10]。日々観測するGitLabのインスタンスは約39Kで、CVE-2026-97229に脆弱なものも1000超追跡している[10]。脆弱なHTTPのレポートでは、'cve-2026-110264'のタグを付けてIPのデータを配っている[10]。
| 種別 | 値 | 示した組織 | 資料 |
|---|---|---|---|
| クラッシュの記録 | Puma/Railsのワーカーのエラー出力に出る、org-rubyとOnigmoを通るRubyのネイティブのクラッシュ([BUG]) | GitLab | [2] |
| 記録の所在 | puma_stderr.log(Omnibusでは/var/log/gitlab/puma/puma_stderr.log) | GitLab | [2] |
| 描画の失敗の集中 | 1つのクライアントが30分以内に.orgファイルの描画でTimeout::Errorを5回以上起こす | GitLab | [3] |
| 調査の対象 | Pumaの想定外の子プロセス、/tmpのgit所有の新しいファイル、外向きの通信、gitユーザーのcrontabやSSH鍵の変更 | GitLab | [3] |
GitLabは、CVE-2026-110264の悪用が成功しても静かで確実にはクラッシュしないため、クラッシュのルールは裏付けの役だと説明した[2]。検知が無くても、試行や成功が無かったことにはならないとした[2]。もう1つのルールでGitLabが挙げた描画の試行の行き着く先は、時間切れ、ワーカーの停止(Workhorseの502)、未使用のメモリへの書き込みによる静かな完了の3通りである[3]。最後の静かな完了は、成功に先立ちうる[3]。
修正と回避策
GitLabの告知によると、CVE-2026-110264の修正はGitLabのコードではなくRubyへのパッチで、公式のLinuxパッケージとコンテナイメージにだけ含まれる[1]。
- 公式パッケージに同梱のRubyでなく独自のRuby実行環境を使うGitLab(自前でコンパイルした環境、独自のコンテナイメージなど)は、GitLabの更新だけでは足りず、Rubyを3.3.13、3.4.12、4.0.9以降に更新する[1]。
- コード実行の兆候があればインスタンスを侵害されたものとして扱い、gitlab-secrets.jsonの秘密情報、全CI/CD変数、全Runnerのトークン、全アクセストークンを入れ替える[3]。
- 修正までの間は、可能な範囲で公開の範囲を狭める(未認証の経路には、GitLabが描画する公開の.orgファイルが要るため)[3]。
GitLabは、19.4.3と19.3.6にはデータベースの移行が含まれると説明した[1]。単一ノードの環境では移行が終わるまでGitLabが起動せず、更新中に停止が生じる[1]。複数ノードの環境は、適切なゼロダウンタイムの手順で停止なしに適用できる[1]。
Rubyの開発チームは、セキュリティ保守期間中の3.3系にも、GitLabがCVEを割り当てたことを理由に例外として修正を入れた[4]。少なくとも今のところ、これらの修正にRubyのCVEは求めておらず、追跡にはGitLabのCVE番号を使うよう求めた[4]。
カナダ・サイバーセキュリティセンターは注意喚起AV26-1074で利用者と管理者に必要な更新の適用を促し[8]、JPCERT/CCはWeekly Reportで修正済みの版への更新を案内した[7]。
未公表の事項
- GitLabの修正版の告知が「一定の条件の下で」とした条件の内容
- GitLabの脆弱性のissueの内容
- Censysの10月22日の評価より後の、実環境での悪用の有無
注
- 〔注1〕The Hacker Newsは、10月21日の版が修正したセキュリティの問題を計11件と報じた[11]。
出典
当事者
- [1]GitLab Inc.『GitLab Critical Patch Release: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, 18.11.13』(2026年10月21日公開)
- [2]GitLab Inc.『Onigmo native worker crash』(公開日不明、2026年11月4日閲覧)
- [3]GitLab Inc.『Org mode render error burst』(公開日不明、2026年11月4日閲覧)
関係組織
- [4]Ruby開発チーム『Regexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264』(2026年10月23日公開)
公的機関
- [5]CVE Program『CVE-2026-110264 Integer Overflow or Wraparound in GitLab』(2026年10月22日公開、2026年10月30日更新)
- [6]National Institute of Standards and Technology『CVE-2026-110264』(2026年10月22日公開、2026年10月31日更新)
- [7]一般社団法人JPCERTコーディネーションセンター『JPCERT/CC Weekly Report 2026-10-28号 【4】GitLabに複数の脆弱性』(2026年10月28日公開)
- [8]Canadian Centre for Cyber Security『GitLab security advisory (AV26-1074)』(2026年10月22日公開)
- [13]National Institute of Standards and Technology『CVE-2026-97229』(2026年10月13日公開、2026年11月2日更新)
調査・観測
- [9]Censys, Inc.『Oct 22 Advisory: GitLab Unauthenticated Remote Code Execution [CVE-2026-110264]』(2026年10月22日公開、2026年10月26日更新)
- [10]The Shadowserver FoundationのBlueskyアカウント(shadowserver.bsky.social)『We are currently tracking over 1000 GitLab instances vulnerable to CVE-2026-97229 …』(2026年11月1日公開)
報道機関
- [11]The Hacker News『Critical GitLab Flaw (CVSS 10.0) Could Allow Unauthenticated RCE Across 12 Years of Releases』(2026年10月21日公開)
- [12]アイティメディア株式会社『「GitLab」に深刻度“最大”の脆弱性 認証なしで任意のコード実行の恐れ、修正版適用を CVSS「10.0」』(2026年10月22日公開)
更新記録
- 2026年11月1日:公開した。
- 2026年11月2日:先行する同種の脆弱性CVE-2026-97229のKEVへの追加を加えた。
