Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gitlab-onigmo-scanner — GitLab CVE-2026-97229(および CVE-2026-110264)の検出専用トリアージ:セルフマネージド GitLab のバージョンとその Ruby を評価し、10月12日パッチとカスタム Ruby の罠を検出します。ペイロードなし、ネットワークプローブなし。 | Kitploit
ツール/GitHubGitHub/foxcornlab/gitlab-onigmo-scanner
防御ツール脆弱性スキャナー脆弱性分析構成監査ペネトレーションテストインシデントレスポンス
GitHubfoxcornlab/gitlab-onigmo-scanner

gitlab-onigmo-scanner

GitLab CVE-2026-97229(および CVE-2026-110264)の検出専用トリアージ:セルフマネージド GitLab のバージョンとその Ruby を評価し、10月12日パッチとカスタム Ruby の罠を検出します。ペイロードなし、ネットワークプローブなし。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
17日前未レビュー

gitlab-onigmo-scanner

2つの CVSS 10.0 の GitLab 正規表現脆弱性、CVE-2026-97229 と CVE-2026-110264 に対するバージョントリアージ。所有している GitLab のバージョンを渡すと、そのビルドがまだ危険な状態かどうかを判定し、すでに人々を陥れている2つの罠を検出します。ネットワークには一切触れず、ペイロードも送信せず、CI の lint エンドポイントにもアクセスせず、細工された正規表現をコンパイルすることもありません。

脆弱性

詳細値
CVECVE-2026-97229、および併せて評価された CVE-2026-110264
バグGitLab がユーザー提供の正規表現をコンパイルする際に、Ruby に組み込まれた正規表現エンジン Onigmo で発生する 整数オーバーフロー (CWE-190)
影響特定の条件下で、セルフマネージド GitLab サーバー上での 未認証のリモートコード実行
深刻度両方とも 10.0 の critical、GitLab が CNA として採点
悪用状況CVE-2026-97229 は 2026-10-29 に CISA KEV へ追加、連邦機関の期限は 2026-11-01。CVE-2026-110264 は本稿執筆時点で KEV への掲載はなく、GitLab は攻撃での使用を示す兆候はないと報告している

CVE-2026-97229 は CI/CD 正規表現の脆弱性です。CI/CD 設定内の特別に細工された正規表現、不十分な正規表現検証が原因で、2026-10-12 に修正されました。CVE-2026-110264 は2つ目の、より広範な正規表現の脆弱性で、2026-10-21 に修正され、7.0 まで遡るすべてのセルフマネージドリリースに影響します。同じエンジン、同じスコア、しかし異なるバグであり、だからこそ1つのチェックだけでは不十分なのです。

修正済みバージョン

CVE-2026-97229 (2026-10-12 修正)

系列修正バージョン
GitLab 19.219.2.8
GitLab 19.319.3.5
GitLab 19.419.4.2
GitLab 19.5、19.2 より古いものこの CVE の影響対象としては記載なし

CVE-2026-110264 (2026-10-21 修正)

系列修正バージョン
GitLab 19.519.5.1
GitLab 19.419.4.3
GitLab 19.319.3.6
GitLab 19.219.2.9
GitLab 19.119.1.9
GitLab 19.019.0.10
GitLab 18.1118.11.13
GitLab 18.10 以前修正リリースなし、18.11.13 以降へアップグレード

Ruby、ソースインストールおよびカスタムイメージの場合

系列修正バージョン
Ruby 3.33.3.13
Ruby 3.43.4.12
Ruby 4.04.0.9
Ruby 3.2 以前修正なし、サポート終了、3.4 または 4.0 へ移行

罠 1: 10月12日のパッチは10月21日をカバーしない

19.4.2、19.3.5、19.2.8 は CVE-2026-97229 を修正しました。しかしそのいずれも、それぞれのブランチにおける CVE-2026-110264 の修正バージョン (19.4.3、19.3.6、19.2.9) を下回っています。10月12日 にパッチを当てて止めてしまったなら、あなたはまだ脆弱であり、最初の CVE しか知らないスキャナーはあなたを安全だと判定するでしょう。このツールは両方を評価し、その罠を検出した際には出力で明示します。

罠 2: GitLab をアップグレードしても、自前の Ruby は修正されない

GitLab の修正は、公式パッケージやイメージに同梱される Ruby へのパッチです。ソースインストールや、Ruby を別途インストールするカスタムイメージでは、GitLab のアップグレードによってそのパッチは適用されません。Alpine Linux はまさにこの事例を経験しました。2026-10-22 に GitLab 19.3.6 へアップグレードしたにもかかわらず、そのイメージが標準の Ruby を使用していたため脆弱なままでした。攻撃者は 2026-10-20 と 21 にそのサーバーを探索し、ワーカーを8回クラッシュさせ、そのうち4回ではエクスプロイトを途中まで進め、さらに 25 と 26 に再び戻ってきました。Alpine はエクスプロイトが成功した証拠を見つけられず、否定することもできず、インスタンスをゼロから再構築し、秘密鍵を交換し、すべてのパスワードをリセットしました。2026-10-27 以降に再取得した修正済みイメージには Ruby 3.3.13 が含まれています。

つまり、--install-type official は GitLab のバージョンのみを判定します。Ruby がそれに付随するためです。--install-type source または custom は、--ruby-version で指定した Ruby も判定し、Ruby のバージョンが欠けている場合はクリーンではなく UNKNOWN と判定します。Ruby 4.0.8 は知っておく価値のある特殊なケースです。これは CVE-2026-97229 のバグを修正しますが CVE-2026-110264 は修正しないため、ここでは VULNERABLE と判定されます。Ruby はこれらの修正について独自の CVE 識別子を要求していないため、CVE レコードをインストール済みパッケージと照合するスキャナは、どこにも脆弱な Ruby を見つけられません。このツールは代わりに Ruby のバージョンを直接チェックします。

チェックする内容

  • 単一の GitLab バージョン: CVE-2026-97229 と CVE-2026-110264 を個別に、その後で総合的な判定を1つ
  • 多数のインスタンスの CSV インベントリ: name,gitlab_version,ruby_version,install_type,hosting
  • インストールが source または custom であると指定した場合の Ruby の罠
  • すでにパッチ適用済みで対応不要な GitLab.com と Dedicated

各検出結果には判定が付きます: VULNERABLE、FIXED、EOL_NO_FIX、UNKNOWN、または影響しないブランチ上の単一 CVE に対する NOT_AFFECTED。EOL_NO_FIX は脆弱としてカウントされます。その系統にパッチが来ることはないためです。

決して行わないこと

ネットワークリクエストなし。リモートサーバへのプロービングなし。細工された正規表現なし、CI lint リクエストなし、エクスプロイトトラフィックなし、PoC コードなし。提供されたバージョン文字列を読み取って停止します。これは意図的なものです: CVE-2026-97229 の公開 PoC はすでに存在しており、ここでそれを再現しても防御上の価値は何も加わりません。

PoC やバージョンカウンタがすでに存在するのに、なぜこれなのか

CVE-2026-97229 の公開資料は主に攻撃的なものです: git ユーザとしてコードを実行する PoC や、どのビルドが武器化可能かをマッピングするラボなどです。Censys は公開されているホストをバージョン別に数えています。GitLab はログ内の悪用試行を発見するための Sigma ルールを公開しました。しかしそのいずれも、10月の CVSS 10.0 の欠陥を両方まとめて判定し、source または custom インストールの下にある Ruby をチェックする、単体の防御的トリアージツールではありません。そのギャップがこのリポジトリです: 1つのコマンド、両方の CVE、両方の罠、ペイロードなし。GitLab の Sigma ルールの代わりではなく、それと併用してください。インスタンスがプローブされた場合、バージョントリアージは侵害トリアージではありません: ワーカーのクラッシュログと Onigmo のクラッシュレポートを確認し、試行を除外できない場合は Alpine の例に従ってください。

判定

検出結果重大度
GitLab がいずれかの CVE についてそのブランチの修正より前VULNERABLE
GitLab が 18.10 以前、または source/custom インストールで Ruby 3.2 以前EOL_NO_FIX、脆弱としてカウント
GitLab が両方の修正に到達または超過し、該当する場合は修正済みの RubyFIXED
Ruby バージョンのない Source/custom インストール、またはこのツールのデータ(2026-10-30)より新しいブランチUNKNOWN、クリーンではない
GitLab.com / DedicatedFIXED、GitLab によりパッチ適用済み

使用方法

# One instance, official package or image
python3 gitlab_onigmo_scanner.py --version 19.4.2

# One instance, source install with its own Ruby
python3 gitlab_onigmo_scanner.py --version 19.4.3 --ruby-version 3.4.11 --install-type source

# A whole estate, machine-readable output
python3 gitlab_onigmo_scanner.py --list inventory.csv --json

# Tests (version tables only, no network)
python3 -m unittest discover -s tests -v

inventory.csv 形式、ヘッダー行は任意:

name,gitlab_version,ruby_version,install_type,hosting
prod,19.4.1,,official,self-managed
staging,19.4.3,,official,self-managed
legacy-source,19.4.3,3.4.11,source,self-managed

終了コード: 0 = 脆弱なものは見つからなかった、2 = 脆弱性またはサポート終了の検出、1 = スキャンエラー。UNKNOWN は終了コードを変更しませんが、クリーンではありません。これらの項目をクローズする前に、別の方法で確認してください。

情報源間の不一致と、このツールが従う方針

  • 19.3.4 について: GitLab のアドバイザリでは、影響を受けるバージョンとして 19.3.5 より前に 19.3 が記載されているため、ここでは 19.3.4 は VULNERABLE と判定されます。あるエクスプロイト研究所は、同梱の libruby が脆弱な経路に入らないため 19.3.4 を武器化できなかったと報告しています。このツールはアドバイザリに従い、保守的に判断します。ベンダーが影響を受けるとしているビルドは、ある研究所の否定的な結果だけでは問題なしとはされません。
  • CVE-2026-97229 の前提条件について: GitLab はこれを PR:N、つまり未認証と評価しています。Rapid7 が再現した経路では、まず攻撃者が制御するコンテンツを公開プロジェクトにプッシュする必要があり、未認証で済むのは最後の CI lint リクエストのみでした。このツールはこの議論の決着は付けません。バージョントリアージはそれに依存しないためです。範囲内のバージョンはいずれの経路でもフラグが立ち、範囲外のバージョンはいずれの経路でもフラグが立ちません。
  • CVE-2026-110264 の悪用について: GitLab は攻撃での使用の兆候はないと報告しており、CISA KEV にも含まれていません。このツールはそれに反する主張はしません。この README にある KEV の掲載、期限日、攻撃の経緯は CVE-2026-97229 のみに属するものです。
  • 対象範囲について: このツールが判定するのは10月の2件の CVSS 10.0 脆弱性のみです。9月の正規表現 CVE (CVE-2026-89078、CVE-2026-93577、いずれも 9.9、認証済み) は個別には判定しません。10月のチェックに失敗するバージョンはすでにクリティカルであり、10月に修正されたすべてのバージョンは各ブランチの9月の修正より上に位置しますが、これは完全な GitLab 監査ではありません。ここでの FIXED 判定を、他のあらゆる GitLab 脆弱性に対する証明として提示しないでください。

正直な注意事項

  • 範囲内のバージョンはトリアージであり、悪用可能性の証明ではありません。到達可能性は設定と露出に依存し、GitLab はどちらの脆弱性についても完全な前提条件を公開していません。
  • クリーンな判定は、入力したバージョン文字列の信頼性に依存します。イメージタグは実行中のバージョンではありません。新たにプルして再ビルドし、その後で実行中のビルドを確認してください。
  • サフィックス付きの GitLab バージョン (19.4.3-ee.0) は数値部分で解析されます。Dedicated で使われる内部ビルド (-internal0) はサフィックス解析ではなく --hosting dedicated フラグで処理されます。
  • このツールのデータより新しいブランチは UNKNOWN と判定されます。将来のリリースをクリーンと判断する前に、GitLab のアドバイザリを再確認してください。
  • エクスプロイトコードはここに含まれず、リンクもされず、再現もされていません。

参考情報

  • GitLab のクリティカルパッチリリース 19.4.2 / 19.3.5 / 19.2.8 (CVE-2026-97229、CVSS 10.0、2026-10-12)
  • GitLab のクリティカルパッチリリース 19.5.1 (CVE-2026-110264、CVSS 10.0、2026-10-21、18.11.13 へのバックポート)
  • CVE-2026-97229 の CISA KEV エントリ (2026-10-29 追加、期限 2026-11-01)
  • Alpine Linux のインシデント開示 (2026-10-28): 攻撃は 2026-10-20 から 26、再ビルドとパスワードリセット、カスタムイメージ向けの Ruby 3.3.13 修正
  • Ruby の正規表現修正アドバイザリ (2026-10-23): Ruby 4.0.9、3.4.12、3.3.13、および CVE-2026-110264 における 4.0.8 のギャップ
  • CVE-2026-97229 に関する Rapid7 の技術分析 (経路の前提条件、インラインコメントの量指定子バイパス)
  • セルフマネージドサーバー向けの GitLab 検出ルール (Sigma 形式、Onigmo ワーカークラッシュおよび CI lint パターン)

謝辞

  • GitLab の HackerOne プログラムを通じて両方の脆弱性を報告した joaxcar
  • アドバイザリ、バックポート、検出ルールを提供した GitLab セキュリティチーム
  • Onigmo の修正と、異例なほど明確なアドバイザリ表を提供した Ruby チーム
  • Ruby の罠を具体的なものにしたインシデントを公開した Alpine Linux
  • Rapid7、Censys、および GitLab の検出研究を公開しているすべての方々

免責事項

防御的なトリアージと許可されたテストのみを目的として構築されています。所有している、またはテストを許可されているシステムのみをスキャンしてください。作者は悪用について責任を負いません。

Vineeth Kumar (foxcornlab) による調査。バグを見つけた場合や機能を希望する場合は、issue を作成してください。

ツールをダウンロード