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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-33067 — Nuclei-шаблон для обнаружения CVE-2026-33017 — уязвимости удалённого выполнения кода без аутентификации в Langflow ≤ 1.8.2. Выполняет неразрушающие предварительные проверки, чтобы отличить уязвимые сборки от пропатченных с помощью анализа HTTP-ответов. | Kitploit
Инструменты/GitHubGitHub/lopseg/cve-2026-33067
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed Teaming
GitHublopseg/cve-2026-33067

cve-2026-33067

Nuclei-шаблон для обнаружения CVE-2026-33017 — уязвимости удалённого выполнения кода без аутентификации в Langflow ≤ 1.8.2. Выполняет неразрушающие предварительные проверки, чтобы отличить уязвимые сборки от пропатченных с помощью анализа HTTP-ответов.

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

Популярное

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

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

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

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

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

CVE-2026-33017 — Шаблон Nuclei для неаутентифицированного RCE в Langflow

Severity CVSS CWE

Шаблон Nuclei для обнаружения CVE-2026-33017 — неаутентифицированной уязвимости удалённого выполнения кода в Langflow ≤ 1.8.2, доступной через публичную конечную точку сборки flow:

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow

Уязвимый обработчик принимает управляемый атакующим граф потока data и передаёт data.nodes[].data.node.template.code.value напрямую в Python exec() во время сборки графа без песочницы. Исправление (≥ 1.9.0) убирает параметр data из сигнатуры обработчика, поэтому исправленная сборка отклоняет тот же запрос на уровне валидации FastAPI с HTTP 422.


Как шаблон принимает решение

Шаблон является неразрушающим. Он отправляет инертный полезный нагрузочный запрос (payload) на нулевой UUID flow ID, поэтому он не может достичь exec() даже на уязвимом хосте. Он отличает уязвимый обработчик от исправленного только по сигнатуре HTTP-ответа.

StageRequestWhat it tells you
1GET /api/v1/versionПодтверждает, что цель — Langflow, и извлекает версию сборки.

Маршрутизация для этапа 2:

Подтверждение реального RCE по-прежнему требует (a) реального PUBLIC flow UUID на целевой системе и (b) внеполосного колбэка (DNS/HTTP). Этот шаг намеренно не включён сюда — данный шаблон является безопасной предварительной проверкой, которая определяет, имеет ли смысл запускать активный эксплойт.


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

Одиночный хост:

root@kitploit:~
nuclei -t CVE-2026-33017.yaml -u https://target.example.com

Массовое сканирование из списка:

root@kitploit:~
nuclei -t CVE-2026-33017.yaml -l targets.txt -rl 20 -c 10

С выводом отладочной информации (см. исходные запросы/ответы):

root@kitploit:~
nuclei -t CVE-2026-33017.yaml -u https://target.example.com -debug-req -debug-resp

Проверьте шаблон локально перед запуском:

root@kitploit:~
nuclei -validate -t CVE-2026-33017.yaml

Пример вывода

Уязвимая цель:

root@kitploit:~
[CVE-2026-33017] [http] [critical] https://target.example.com [vulnerable-flow-not-found] ["1.8.2","base"]

Исправленная цель — находок нет (ответ 422 не соответствует ни одному правилу).


Поиск кандидатов

Типичные поисковые запросы для обнаружения хостов Langflow (используйте только против активов, которые вам разрешено тестировать):

  • Shodan: http.title:"Langflow"
  • FOFA: app="Langflow"
  • Google: intitle:"Langflow" inurl:"/flows"

Детали уязвимости

  • CVE: CVE-2026-33017
  • CWE: CWE-94 (Некорректный контроль генерации кода)
  • CVSS 3.1: 9.3 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Затронуто: Langflow ≤ 1.8.2
  • Исправлено в: Langflow ≥ 1.9.0
  • Вектор: Сетевой, без аутентификации, без взаимодействия с пользователем
  • Воздействие: Удалённое выполнение кода от имени пользователя процесса Langflow

Корневая причина (кратко)

В уязвимых сборках публичный обработчик объявляется примерно так:

root@kitploit:~
@router.post("/build_public_tmp/{flow_id}/flow")
async def build_public_flow(flow_id: UUID, data: FlowDataRequest | None = None, ...):
    ...
    await verify_public_flow_and_get_user(flow_id, ...)
    ...
    # data.nodes[].data.node.template.code.value reaches exec() in the
    # Component build path

data контролируется атакующим. Исправленный обработчик полностью удаляет этот параметр и принудительно устанавливает data=None, поэтому запрос, включающий поле data в теле, отклоняется с 422 на исправленных сборках.


Устранение

  1. Обновите Langflow до версии ≥ 1.9.0.
  2. Если немедленное обновление невозможно, заблокируйте /api/v1/build_public_tmp/ на обратном прокси.
  3. Установите LANGFLOW_AUTO_LOGIN=False, настройте учётные данные суперпользователя и смените LANGFLOW_SECRET_KEY.
  4. Проверьте существующие flow — именно flow с access_type=PUBLIC станут целью атакующего в URL.

Ссылки

  • GitHub Advisory: https://github.com/advisories/GHSA-vwmf-pq79-vjvx
  • Разбор SonicWall: https://www.sonicwall.com/pt-br/blog/langflow-ai-code-injection-to-rce-flaw
  • Исходный код исправленного обработчика: https://github.com/langflow-ai/langflow/blob/main/src/backend/base/langflow/api/v1/chat.py

Юридические сведения и раскрытие

Этот шаблон опубликован только для защитного обеспечения безопасности и авторизованного тестирования. Запуск его против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, является незаконным в большинстве юрисдикций и нарушает условия использования платформ.

Используя этот шаблон, вы соглашаетесь с тем, что:

  • Вы будете сканировать только активы, которыми владеете или которые вам явно разрешено тестировать (в рамках программ bug-bounty, подписанных договоров на пентест, внутренней инвентаризации активов).
  • Автор не несёт ответственности за неправомерное использование.
  • Шаблон предоставляется как есть, без каких-либо гарантий.

Автор

lopseg — https://github.com/lopseg

Пул-реквесты и issues приветствуются.

Лицензия

MIT

Скачать инструмент
2POST /api/v1/build_public_tmp/00000000-0000-0000-0000-000000000000/flow с телом, содержащим поле data и инертное значение template.code.valueРешение о маршрутизации ниже.
StatusBody containsVerdict
404flow / publicУЯЗВИМО — обработчик принял data, затем поиск не удался, потому что UUID поддельный.
200job_id / build / taskУЯЗВИМО — обработчик принял data и вошёл в путь сборки.
5xxexec / Component / tracebackУЯЗВИМО — обработчик достиг кода exec до сбоя.
422Field required / extra / dataИСПРАВЛЕНО — сигнатура обработчика больше не принимает data.