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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-58138 — CVE-2026-58138 — Conductor (3.21.21..<3.30.2) の INLINE GraalVM エバリュエーター(HostAccess.ALL)を介した未認証RCE。ラボ + PoC、e2e(root)で検証済み。 | Kitploit
ツール/GitHubGitHub/ch4120n/cve-2026-58138
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ペイロード開発ラボと実践
GitHubch4120n/cve-2026-58138

CVE-2026-58138

CVE-2026-58138 — Conductor (3.21.21..<3.30.2) の INLINE GraalVM エバリュエーター(HostAccess.ALL)を介した未認証RCE。ラボ + PoC、e2e(root)で検証済み。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-58138 — GraalVM Evaluator を介した Conductor の未認証 RCE

CVE CVSS Status Auth

要約: Orkes/OSS Conductor(バージョン 3.21.21 から < 3.30.2)は、INLINE タスクでユーザーが指定した JavaScript を、完全なホストアクセス(HostAccess.ALL)を許可した GraalVM コンテキストで評価します。コミュニティ API はデフォルトで認証がないため、未認証のユーザーが悪意のあるワークフローを送信し、バインドされた JavaScript オブジェクトから java.lang.Runtime にピボットし、Conductor プロセスユーザー(多くの場合 root)として**未認証のリモートコード実行(RCE)**を達成できます。


目次

  1. 脆弱性の概要
  2. 根本原因
  3. 攻撃フロー
  4. クイックスタートと再現手順
  5. 影響
  6. 対策
  7. 検出
  8. クレジットと免責事項

脆弱性の概要

属性詳細
CVE 識別子CVE-2026-58138
影響を受けるソフトウェアConductor 3.21.21 から 3.30.1
修正バージョン3.30.2(コミット: 87a7d96、c691e35)
脆弱性クラスCWE-94: コードインジェクション(GraalVM ポリグロットサンドボックスバイパス)
CVSS v3.1 スコア9.8(クリティカル) AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
認証なし(コミュニティ API はデフォルトで未認証)
確認conductoross/conductor:3.22.3 で root として確認済み

バージョンに関する注意: バージョン ~3.29.x までは単純な allowHostAccess(HostAccess.ALL) 設定を使用しており、本 PoC はこれを直接悪用します。バージョン 3.30.0 および 3.30.1 では部分的なブロックリスト(一部のリフレクションをブロック)が導入されましたが、完全な修正(allowHostClassLoading(false) + エンジンの強化)は 3.30.2 でのみ実装されています。本 PoC はサンドボックス化されていない設定を対象としています。


根本原因

この脆弱性は、Conductor がスクリプト評価のために GraalVM ポリグロットコンテキストを構成する方法に存在します。

core/.../events/ScriptEvaluator.java(≤ 3.29.x)では、コンテキストは次のように構築されます:

root@kitploit:~
return Context.newBuilder("js")
        .allowHostAccess(HostAccess.ALL)   // 危険: 完全なホスト相互運用、サンドボックスなし
        .build();

なぜこれがゲームオーバーなのか:

  1. HostAccess.ALL は、JavaScript エンジンに Java ホストオブジェクトの任意のメソッド呼び出しやフィールドへのアクセスを許可します。
  2. INLINE タスクは、その入力パラメータを JavaScript 変数 $ にバインドします。これは実際の Java オブジェクトです。
  3. 攻撃者は $ から始めて Java リフレクションを連鎖させることができます: $.getClass().getClass() ➔ java.lang.Class ➔ Class.forName("java.lang.Runtime") ➔ Runtime.getRuntime().exec("sh -c <command>")。
  4. 同じ欠陥は Python 評価器(Context.newBuilder("python").allowAllAccess(true))にも存在します。

攻撃フロー

この攻撃は認証を必要とせず、次の 3 つの簡単なステップで構成されます:

  1. 登録: 悪意のあるワークフロー定義を含む POST リクエストを /api/metadata/workflow に送信します。INLINE タスクには、expression フィールドにリフレクティブな JavaScript ペイロードが含まれます。
  2. 実行: POST リクエストを /api/workflow/{workflow_name} に送信してワークフローをトリガーします。
  3. 抽出: GraalVM エンジンがペイロードを実行します。リフレクティブな Runtime.exec が OS コマンドを実行し、PoC は巧妙に stdout をキャプチャしてタスクの result 出力として返し、API 経由で取得されます。

クイックスタートと再現手順

1. 脆弱なラボを起動

Docker を使用して脆弱性のある Conductor バージョンのローカルインスタンスを起動します。

root@kitploit:~
# リポジトリをクローンし、ラボ環境を起動
docker compose -f docker/docker-lab.yml up -d

# オールインワンサーバーが完全に起動するまで約 60 秒待機

2. PoC を実行

提供された Python エクスプロイトスクリプトを実行します。このスクリプトは Python 標準ライブラリのみ に依存し、外部依存関係は必要ありません。

root@kitploit:~
python3 exploit.py http://127.0.0.1:8080 -c "id; hostname; whoami"

3. 期待される出力

root@kitploit:~
[*] Target: http://127.0.0.1:8080
[*] Command: 'id; hostname; whoami'
[*] Registering workflow with a malicious INLINE (javascript) task ... (no auth)
[*] Starting workflow execution ... (no auth)
[*] Started workflow id=pwn_1705432100; reading INLINE task output ...

[+] UNAUTHENTICATED RCE CONFIRMED - command output from the Conductor host:
uid=0(root) gid=0(root) groups=0(root)
vbox
Linux 6.18.12+deb13-amd64

注: uid=0(root) の出力は、模擬的な応答ではなく、ホスト上での実際の実行を証明しています。


影響

エクスプロイトが成功すると、攻撃者は Conductor オーケストレーターホスト上で 任意の OS コマンド実行 を達成できます。

Conductor は多くの場合、インフラストラクチャを管理するために昇格された権限でデプロイされるため、通常これは以下の結果をもたらします:

  • ワークフローエンジン全体の侵害。
  • 基盤となる永続化層(Redis、PostgreSQL、Elasticsearch)へのアクセス。
  • 保存された資格情報やワークフローによってトリガーされるダウンストリームシステムを介した横方向の移動。

対策

  1. 直ちにアップグレード: Conductor ≥ 3.30.2 に更新してください。このバージョンでは、JS および Python 評価器はホストアクセスやクラスロードを有効にした状態で実行されなくなります。
  2. 多層防御:
    • Conductor API の前に認証ゲートウェイ(例: OAuth2、API キー)を配置します。
    • Conductor サーバープロセスを非 root の最小権限ユーザーとして実行します。
    • 厳格なネットワークセグメンテーションを実装して、ワークフローの登録や実行が可能なユーザーを制限します。

検出

環境内で次の侵害指標(IoC)を監視します:

  • ワークフロー定義: expression 文字列に以下の参照が含まれる INLINE、LAMBDA、DO_WHILE、SWITCH タスクをフラグします:
    • getClass、forName、Runtime、exec、ProcessBuilder
    • java.lang.reflect または一般的な java. パッケージへのアクセス
  • ホストレベルのアラート: Conductor JVM プロセスが予期せずシェルインタープリター(sh、bash、cmd.exe)を生成したり、アウトバウンドネットワーク接続を行ったりするのを監視します。

リフレクションチェーン、バージョン別の評価器設定、パッチ分析の詳細については、ANALYSIS.md を参照してください。


クレジットと免責事項

  • リポジトリ保守: Ch4120N
  • PoC の洗練: (Ch4120N/CVE-2026-58138)
  • アドバイザリリファレンス: Orkes Conductor unauth RCE via GraalVM script evaluators

免責事項: このリポジトリは、防御的、教育的、および許可されたセキュリティテスト目的のための独立した再現可能なラボおよび Proof of Concept(PoC)を含んでいます。このコードを、あなたが所有していない、または明示的な書面によるテスト許可を得ていないシステムに対して使用しないでください。著者は誤用に対する一切の責任を負いません。

ツールをダウンロード