
GitLabの脆弱性(CVE-2026-97229)が、2026年10月29日に、米国のCISAの「悪用が確認された脆弱性(KEV)」のカタログに登録されました。要対処の期限は、米国の連邦機関に対して、11月1日です。「フォレンジックのトリアージ(侵害の有無の調査)が必要」とも付けられています(CISAのKEVのデータを、私が直接確認)。
自社でGitLabを運用している(GitLab.comではなく、自分たちのサーバーに入れている)会社は、この記事を、確認の手がかりにしてください。確認できた事実と、確認できていない点を分けて、一次情報を軸に整理しています。情報は、2026年10月30日の時点のものです。同じ月に、CISAのKEVへ入った、VPNやメールゲートウェイなどの機器は、今月、悪用が確認された「入口の機器」にまとめています。
日本語で出回っている情報には、原文と異なる訳や要約が、かなり見受けられます。この記事は、一次情報を私たちも原文で確認して書いていますが、読者の皆さんも、各社の原文でのご確認をお勧めします。出典は、各記述のそばに示しています。
| 日付(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のデータ |
Rubyの告知によると、GitLabが報告した、Rubyの正規表現エンジンの欠陥は、3つです。GitLabは、これに対して、4つのCVEを出しています(Ruby)。
| 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以前には、修正がありません(Ruby)。
Rubyは、この件で、自分のCVEを取っていません(「少なくとも、今は」としています)。そのため、Rubyのバージョンだけで、脆弱性を照合するスキャナーでは、見逃すことがあります。Rubyは、GitLabのCVEの番号を、追うよう勧めています(Ruby)。
製品が同梱する部品の欠陥は、製品の番号だけでは見えません。同じ週のBrotliの欠陥も、Node.jsや.NETなどが同梱する部品の問題でした。
攻撃の入口は、GitLabの評価では「認証なし」ですが、Rapid7の検証では、攻撃者が、悪意のあるCI設定を、公開プロジェクトに置ける必要があります。誰でも登録できる設定では、この条件が、なくなります(Rapid7)。
| 項目 | 内容 | 確度 |
|---|---|---|
| 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は、自前のGitLabを運用していて、今回の攻撃を受けた当事者として、経緯を公開しています(Alpine Linux)。
原因について、Alpineは、修正が、GitLabのコードではなく、GitLabが同梱するRubyへのパッチにあるため、と説明しています。GitLabの公式パッケージでは、同梱するRubyにパッチが当たっています。Alpineは、標準のRubyで、イメージを作っていたため、GitLabを上げても、直りませんでした。Rubyの告知も、GitLabが、同梱するRubyにパッチを当てて、自社のリリースで直している、と書いています(Ruby)。
Alpineの攻撃者は、アカウントを登録して、探りを入れてから、本格的に攻撃し、コンテナイメージも、取得していました。Alpineは、自分たちのビルドに合わせて、調整していた可能性がある、と見ています。
次のコマンドで、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)で止まっている場合は、もう一度、上げてください。
安全にはなりません。時間稼ぎです。
どちらも、Rapid7が示した、攻撃の入口を、ふさぐだけです。欠陥そのものは、直りません(Rapid7)。GitLabの告知には、回避策がありません。
CISAは、フォレンジックのトリアージが必要としています。更新の前後で、次の点を、確認してください。
成功した攻撃は、クラッシュも、Webのログも、残さないことがあります。疑わしい場合は、Alpineと同じく、再構築と、パスワードのリセット、秘密鍵の交換まで、考えてください。成功した場合に、取られうる情報として、Alpineは、パスワードのハッシュ、メールアドレス、2要素認証の秘密情報、CI/CDの変数、ランナーのトークン、Webhookの認証情報、非公開のリポジトリなどを、挙げています。
自社の環境で、GitLabの版の確認や、更新、侵害の確認でお困りの方は、お問い合わせください。
ただいま、セキュリティについての無料相談を受け付けています。「自社のサイトは大丈夫か」「何から確認すればよいか」など、お気軽にご相談ください。
