Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-58138 — CVE-2026-58138 — Conductor (3.21.21..<3.30.2) nicht authentifizierte RCE über INLINE GraalVM-Evaluator (HostAccess.ALL). Labor + PoC, Ende-zu-Ende verifiziert (root). | Kitploit
Tools/GitHubGitHub/ch4120n/cve-2026-58138
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-EntwicklungLabs & Praxis
GitHubch4120n/cve-2026-58138

CVE-2026-58138

CVE-2026-58138 — Conductor (3.21.21..<3.30.2) nicht authentifizierte RCE über INLINE GraalVM-Evaluator (HostAccess.ALL). Labor + PoC, Ende-zu-Ende verifiziert (root).

Repository anzeigen
15vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-58138 – Nicht authentifizierte RCE in Conductor über GraalVM Evaluator

CVE CVSS Status Auth

TL;DR: Orkes/OSS Conductor (Versionen 3.21.21 bis < 3.30.2) wertet in INLINE-Tasks vom Benutzer bereitgestelltes JavaScript mit einem GraalVM-Kontext aus, der vollen Host-Zugriff (HostAccess.ALL) besitzt. Da die Community-API standardmäßig keine Authentifizierung hat, kann jeder nicht authentifizierte Benutzer einen bösartigen Workflow einreichen, vom gebundenen JavaScript-Objekt zu java.lang.Runtime springen und als Conductor-Prozessbenutzer (oft ) erreichen.

nicht authentifizierte Remote-Codeausführung (RCE)
root

Inhaltsverzeichnis

  1. Übersicht der Schwachstelle
  2. Die Ursache
  3. Angriffsablauf
  4. Schnellstart & Reproduktion
  5. Auswirkungen
  6. Abhilfe
  7. Erkennung
  8. Danksagung & Haftungsausschluss

Übersicht der Schwachstelle

AttributDetails
CVE-KennungCVE-2026-58138
Betroffene SoftwareConductor 3.21.21 bis 3.30.1
Behobene Version3.30.2 (Commits: 87a7d96, c691e35)
SchwachstellenklasseCWE-94: Code-Injection (GraalVM-Polyglot-Sandbox-Umgehung)
CVSS v3.1 Punktezahl9.8 (Kritisch) AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
AuthentifizierungKeine (Community-API ist standardmäßig ohne Authentifizierung)
BestätigungAls root gegen conductoross/conductor:3.22.3 bestätigt

Hinweis zur Version: Versionen bis etwa 3.29.x verwenden die einfache allowHostAccess(HostAccess.ALL)-Konfiguration, die dieser PoC direkt ausnutzt. Die Versionen 3.30.0 und 3.30.1 führten eine teilweise Blockliste ein (die einige Reflection-Aufrufe blockiert), aber die vollständige Behebung (allowHostClassLoading(false) + Engine-Härtung) wurde erst in 3.30.2 umgesetzt. Dieser PoC zielt auf die nicht isolierte Konfiguration ab.


Die Ursache

Die Schwachstelle liegt in der Art und Weise, wie Conductor den GraalVM-Polyglot-Kontext für die Skriptauswertung konfiguriert.

In core/.../events/ScriptEvaluator.java (≤ 3.29.x) wird der Kontext wie folgt aufgebaut:

root@kitploit:~
return Context.newBuilder("js")
        .allowHostAccess(HostAccess.ALL)   // GEFAHR: Vollständige Host-Interop, kein Sandbox
        .build();

Warum dies ein Spielverderber ist:

  1. HostAccess.ALL gewährt der JavaScript-Engine die Berechtigung, jede Methode aufzurufen oder jedes Feld auf Java-Host-Objekten zuzugreifen.
  2. Der INLINE-Task bindet seine Eingabeparameter an die JavaScript-Variable $, die ein echtes Java-Objekt ist.
  3. Ein Angreifer kann Java-Reflection ausgehend von $ verketten: $.getClass().getClass() ➔ java.lang.Class ➔ Class.forName("java.lang.Runtime") ➔ Runtime.getRuntime().exec("sh -c <command>").
  4. Der gleiche Fehler besteht im Python-Evaluator (Context.newBuilder("python").allowAllAccess(true)).

Angriffsablauf

Der Angriff erfordert keine Authentifizierung und folgt drei einfachen Schritten:

  1. Registrieren: Senden Sie eine POST-Anfrage an /api/metadata/workflow mit einer bösartigen Workflow-Definition. Der INLINE-Task enthält die reflektive JavaScript-Nutzlast in seinem expression-Feld.
  2. Ausführen: Senden Sie eine POST-Anfrage an /api/workflow/{workflow_name}, um den Workflow zu starten.
  3. Extrahieren: Die GraalVM-Engine führt die Nutzlast aus. Das reflektive Runtime.exec führt den Betriebssystembefehl aus, und der PoC fängt clever die stdout ab und gibt sie als result-Ausgabe des Tasks zurück, die dann über die API abgerufen wird.

Schnellstart & Reproduktion

1. Starten der angreifbaren Testumgebung

Starten Sie eine lokale Instanz der angreifbaren Conductor-Version mit Docker.

root@kitploit:~
# Repository klonen und die Laborumgebung starten
docker compose -f docker/docker-lab.yml up -d

# ~60 Sekunden warten, bis der All-in-One-Server vollständig gestartet ist

2. Ausführen des PoC

Führen Sie das bereitgestellte Python-Exploit-Skript aus. Es benötigt nur die Python-Standardbibliothek (keine externen Abhängigkeiten erforderlich).

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

3. Erwartete Ausgabe

root@kitploit:~
[*] Ziel: http://127.0.0.1:8080
[*] Befehl: 'id; hostname; whoami'
[*] Registriere Workflow mit bösartigem INLINE (javascript)-Task ... (keine Authentifizierung)
[*] Starte Workflow-Ausführung ... (keine Authentifizierung)
[*] Gestartete Workflow-ID=pwn_1705432100; lese INLINE-Task-Ausgabe ...

[+] NICHT AUTHENTIFIZIERTE RCE BESTÄTIGT - Befehlsausgabe vom Conductor-Host:
uid=0(root) gid=0(root) groups=0(root)
vbox
Linux 6.18.12+deb13-amd64

Hinweis: Die Ausgabe uid=0(root) beweist die echte Ausführung auf dem Host, nicht eine vorgetäuschte Antwort.


Auswirkungen

Eine erfolgreiche Ausnutzung gewährt dem Angreifer beliebige Betriebssystembefehle auf dem Conductor-Orchestrator-Host.

Da Conductor oft mit erhöhten Privilegien zur Verwaltung der Infrastruktur eingesetzt wird, führt dies typischerweise zu:

  • Vollständiger Kompromittierung der Workflow-Engine.
  • Zugriff auf zugrunde liegende Persistenzschichten (Redis, PostgreSQL, Elasticsearch).
  • Seitwärtsbewegung über gespeicherte Anmeldedaten oder nachgelagerte Systeme, die von Workflows ausgelöst werden.

Abhilfe

  1. Sofort aktualisieren: Upgraden Sie auf Conductor ≥ 3.30.2. In dieser Version führen die JS- und Python-Evaluatoren nicht mehr mit Host-Zugriff oder aktiviertem Klassenladen aus.
  2. Sicherheit in der Tiefe:
    • Platzieren Sie ein Authentifizierungs-Gateway (z. B. OAuth2, API-Schlüssel) vor der Conductor-API.
    • Führen Sie den Conductor-Server-Prozess als Nicht-Root-Benutzer mit minimalen Berechtigungen aus.
    • Implementieren Sie eine strikte Netzwerksegmentierung, um einzuschränken, wer Workflows registrieren oder ausführen kann.

Erkennung

Überwachen Sie Ihre Umgebung auf die folgenden Indikatoren für eine Kompromittierung (IoCs):

  • Workflow-Definitionen: Markieren Sie alle INLINE-, LAMBDA-, DO_WHILE- oder SWITCH-Tasks, deren expression-Strings Folgendes enthalten:
    • getClass, forName, Runtime, exec, ProcessBuilder
    • java.lang.reflect oder generischen java.-Paketzugriff
  • Host-Level-Warnungen: Überwachen Sie Conductor-JVM-Prozesse, die unerwartet Shell-Interpreter (sh, bash, cmd.exe) starten oder ausgehende Netzwerkverbindungen aufbauen.

Eine ausführliche Analyse der Reflection-Kette, versionsspezifischer Evaluator-Konfigurationen und der Patch-Analyse finden Sie in ANALYSIS.md.


Danksagung & Haftungsausschluss

  • Repository-Pflege: Ch4120N
  • PoC-Verfeinerung: (Ch4120N/CVE-2026-58138)
  • Advisory-Referenz: Orkes Conductor unauth RCE via GraalVM script evaluators

Haftungsausschluss: Dieses Repository enthält eine unabhängige, reproduzierbare Testumgebung und einen Proof of Concept (PoC), der ausschließlich für defensive, pädagogische und autorisierte Sicherheitstestzwecke bestimmt ist. Verwenden Sie diesen Code nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Erlaubnis zum Testen haben. Die Autoren übernehmen keine Haftung für Missbrauch.

Tool herunterladen