Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-58138 — CVE-2026-58138 — Conductor (3.21.21..<3.30.2) RCE non autenticato tramite l'evaluator INLINE di GraalVM (HostAccess.ALL). Lab + PoC, verificato e2e (root). | Kitploit
Strumenti/GitHubGitHub/ch4120n/cve-2026-58138
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSviluppo PayloadLab e Pratica
GitHubch4120n/cve-2026-58138

CVE-2026-58138

CVE-2026-58138 — Conductor (3.21.21..<3.30.2) RCE non autenticato tramite l'evaluator INLINE di GraalVM (HostAccess.ALL). Lab + PoC, verificato e2e (root).

Vedi Repository
11 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-58138 — Conductor RCE non autenticata tramite GraalVM Evaluator

CVE CVSS Status Auth

TL;DR: Orkes/OSS Conductor (versioni 3.21.21 a < 3.30.2) valuta JavaScript fornito dall'utente nei task INLINE utilizzando un contesto GraalVM con accesso completo all'host (HostAccess.ALL). Poiché l'API community non ha autenticazione per impostazione predefinita, qualsiasi utente non autenticato può inviare un workflow malevolo, pivotare dall'oggetto JavaScript associato a java.lang.Runtime e ottenere Esecuzione di Codice Remota (RCE) non autenticata come utente del processo Conductor (spesso root).


Sommario

  1. Panoramica della vulnerabilità
  2. La causa principale
  3. Flusso di sfruttamento
  4. Avvio rapido e riproduzione
  5. Impatto
  6. Rimedi
  7. Rilevamento
  8. Crediti e disclaimer

Panoramica della vulnerabilità

Nota sulle versioni: Le versioni fino a ~3.29.x utilizzano la configurazione semplice allowHostAccess(HostAccess.ALL), che questo PoC sfrutta direttamente. Le versioni 3.30.0e3.30.1 hanno introdotto una blocc list parziale (bloccando alcune riflessioni), ma la correzione completa (allowHostClassLoading(false) + rafforzamento del motore) è stata implementata solo nella **3.30.2`**. Questo PoC colpisce la configurazione senza sandbox.


La causa principale

La vulnerabilità risiede nel modo in cui Conductor configura il contesto poliglotta GraalVM per la valutazione degli script.

In core/.../events/ScriptEvaluator.java (≤ 3.29.x), il contesto viene costruito così:

root@kitploit:~
return Context.newBuilder("js")
        .allowHostAccess(HostAccess.ALL)   // PERICOLO: piena interop host, nessun sandbox
        .build();

Perché è un game over:

  1. HostAccess.ALL concede al motore JavaScript il permesso di chiamare qualsiasi metodo o accedere a qualsiasi campo su oggetti host Java.
  2. Il task INLINE associa i suoi parametri di input alla variabile JavaScript $, che è un vero oggetto Java.
  3. Un attaccante può concatenare la riflessione Java partendo da $: $.getClass().getClass() ➔ java.lang.Class ➔ Class.forName("java.lang.Runtime") ➔ Runtime.getRuntime().exec("sh -c <command>").
  4. La stessa falla esiste nel valutatore Python (Context.newBuilder("python").allowAllAccess(true)).

Flusso di sfruttamento

L'attacco richiede zero autenticazione e segue tre semplici passaggi:

  1. Registra: Invia una richiesta POST a /api/metadata/workflow con una definizione di workflow malevola. Il task INLINE contiene il payload JavaScript riflessivo nel suo campo expression.
  2. Esegui: Invia una richiesta POST a /api/workflow/{workflow_name} per attivare il workflow.
  3. Estrai: Il motore GraalVM esegue il payload. La riflessione Runtime.exec esegue il comando del sistema operativo, e il PoC cattura abilmente lo stdout e lo restituisce come output result del task, che viene poi recuperato tramite l'API.

Avvio rapido e riproduzione

1. Avvia il laboratorio vulnerabile

Avvia un'istanza locale della versione vulnerabile di Conductor usando Docker.

root@kitploit:~
# Clona il repository e avvia l'ambiente di laboratorio
docker compose -f docker/docker-lab.yml up -d

# Attendi circa 60 secondi per l'avvio completo del server all-in-one

2. Esegui il PoC

Esegui lo script di exploit Python fornito. Si basa solo sulla libreria standard Python (nessuna dipendenza esterna richiesta).

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

3. Output previsto

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

Nota: L'output uid=0(root) prova l'esecuzione genuina sull'host, non una risposta simulata.


Impatto

Lo sfruttamento riuscito concede all'attaccante esecuzione arbitraria di comandi del sistema operativo sull'host orchestratore di Conductor.

Poiché Conductor è spesso distribuito con privilegi elevati per gestire l'infrastruttura, ciò di solito comporta:

  • Compromissione totale del motore del workflow.
  • Accesso ai livelli di persistenza sottostanti (Redis, PostgreSQL, Elasticsearch).
  • Movimento laterale tramite credenziali memorizzate o sistemi downstream attivati dai workflow.

Rimedi

  1. Aggiorna immediatamente: Aggiorna a Conductor ≥ 3.30.2. In questa versione, i valutatori JS e Python non vengono più eseguiti con accesso host o caricamento di classi abilitato.
  2. Difesa in profondità:
    • Posiziona un gateway di autenticazione (es. OAuth2, API Keys) davanti all'API di Conductor.
    • Esegui il processo server di Conductor come utente non-root con privilegi minimi.
    • Implementa una segmentazione di rete rigorosa per limitare chi può registrare o eseguire workflow.

Rilevamento

Monitora il tuo ambiente per i seguenti indicatori di compromissione (IoC):

  • Definizioni di Workflow: Segnala qualsiasi task INLINE, LAMBDA, DO_WHILE o SWITCH contenente stringhe expression che facciano riferimento a:
    • getClass, forName, Runtime, exec, ProcessBuilder
    • java.lang.reflect o accesso generico al package java.
  • Avvisi a livello host: Monitora i processi JVM di Conductor che generano inaspettatamente interpreti di shell (sh, bash, ) o effettuano connessioni di rete in uscita.

Per un approfondimento sulla catena di riflessione, sulle configurazioni specifiche del valutatore per versione e sull'analisi della patch, consulta ANALYSIS.md.


Crediti e disclaimer

  • Manutenzione del repository: Ch4120N
  • Perfezionamento del PoC: (Ch4120N/CVE-2026-58138)
  • Riferimento advisory: Orkes Conductor unauth RCE via GraalVM script evaluators

Disclaimer: Questo repository contiene un laboratorio indipendente e riproducibile e una Proof of Concept (PoC) destinata strettamente a scopi difensivi, educativi e di test di sicurezza autorizzati. Non utilizzare questo codice contro sistemi di cui non possiedi o per i quali non hai esplicita autorizzazione scritta per testarli. Gli autori declinano ogni responsabilità per uso improprio.

Scarica lo strumento
AttributoDettagli
Identificatore CVECVE-2026-58138
Software affettoConductor 3.21.21 fino a 3.30.1
Versione corretta3.30.2 (Commit: 87a7d96, c691e35)
Classe di vulnerabilitàCWE-94: Iniezione di codice (bypass del sandbox poliglotta GraalVM)
Punteggio CVSS v3.19.8 (Critico) AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
AutenticazioneNessuna (l'API community non è autenticata per impostazione predefinita)
VerificaConfermato come root contro conductoross/conductor:3.22.3
cmd.exe