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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-55255-Lab — Локальная Docker-лаборатория для воспроизведения CVE-2026-55255 — уязвимости IDOR в API Responses платформы Langflow. Проверяет выполнение потоков между пользователями в уязвимой и исправленной версиях с помощью PoC на основе HTTP-запросов. | Kitploit
Инструменты/GitHubGitHub/rootdirective-sec/cve-2026-55255-lab
Анализ уязвимостейЭксплуатация веб-приложенийТестирование безопасности APIТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubrootdirective-sec/cve-2026-55255-lab

CVE-2026-55255-Lab

Локальная Docker-лаборатория для воспроизведения CVE-2026-55255 — уязвимости IDOR в API Responses платформы Langflow. Проверяет выполнение потоков между пользователями в уязвимой и исправленной версиях с помощью PoC на основе HTTP-запросов.

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

Популярное

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

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

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

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

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

CVE-2026-55255 - Langflow IDOR в /api/v1/responses

Краткое описание

Этот репозиторий содержит локальную Docker-лабораторию для воспроизведения и проверки CVE-2026-55255 — уязвимости типа Insecure Direct Object Reference (IDOR), затрагивающей OpenAI-совместимый Responses API в Langflow.

Langflow — это платформа с открытым исходным кодом для создания и развёртывания агентов и рабочих процессов на основе ИИ. Уязвимое поведение затрагивает конечную точку /api/v1/responses, где аутентифицированный злоумышленник может указать UUID чужого потока в качестве значения model и заставить Langflow выполнить этот поток, принадлежащий жертве.

Эта лаборатория сравнивает две версии Langflow:

СервисВерсия LangflowНазначениеURL
vuln1.9.0Уязвимая цель для сравненияhttp://localhost:7860
patched1.9.1Исправленная цель для сравненияhttp://localhost:7861

Продемонстрированный путь проверки HTTP в этой локальной лабораторной среде:```text Authenticated attacker API key → POST /api/v1/responses → request body sets model to victim-owned flow UUID → vulnerable target executes the victim-owned flow → patched target returns flow_not_found and does not execute the victim-owned flow

В уязвимой цели ключ API, принадлежащий атакующему, может выполнять поток, принадлежащий жертве, и ответ содержит маркер, доступный только жертве:```text
VICTIM_ONLY_CONTEXT_55255_VULN

В пропатченной цели тот же межпользовательский запрос не возвращает маркер жертвы и возвращает тело ошибки в стиле OpenAI:```json {"error":{"message":"Flow with id '' not found","type":"invalid_request_error","code":"flow_not_found"}}

Эта лабораторная работа проверяет поведение HTTP уязвимой версии по сравнению с исправленной, используя Langflow 1.9.0 и Langflow 1.9.1.

Лабораторная работа намеренно ограничена локальными Docker-сервисами. Она не нацелена на внешние системы и не включает кражу учётных данных, дамп баз данных, разрушительные полезные нагрузки, внешние обратные вызовы, вредоносное ПО, закрепление в системе или действия после эксплуатации.

## Проверенные факты

| Утверждение | Доказательство | Как проверить в этой лабораторной работе |
| ----- | -------- | ------------------------- |
| CVE-2026-55255 затрагивает конечную точку `/api/v1/responses` Langflow. | В уведомлении GitHub GHSA-qrpv-q767-xqq2 описан IDOR в `/api/v1/responses`. | Изучите раздел References и запустите PoC против обеих локальных целей. |
| В уведомлении GitHub указаны затронутые версии `< 1.9.1` и исправленная версия `1.9.1`. | Уведомление GitHub GHSA-qrpv-q767-xqq2. | Сравните уязвимую и исправленную версии целевых сервисов в `docker-compose.yml`. |
| Некоторые вторичные источники об уязвимостях расходятся во мнениях относительно точной исправленной версии. | GitHub/GitLab указывают `1.9.1` как исправленную; некоторые вторичные страницы упоминают `1.9.2` или содержат неоднозначные формулировки. | Изучите раздел References и полагайтесь на результаты лабораторной проверки поведения версии 1.9.1. |
| Эта лабораторная работа использует Langflow 1.9.0 в качестве уязвимой цели для сравнения. | Сервис `vuln` использует `langflowai/langflow:1.9.0`. | Проверьте `docker-compose.yml` и выполните `docker compose ps`. |
| Эта лабораторная работа использует Langflow 1.9.1 в качестве исправленной цели для сравнения. | Сервис `patched` использует `langflowai/langflow:1.9.1`. | Проверьте `docker-compose.yml` и выполните `docker compose ps`. |
| API Responses Langflow использует `POST /api/v1/responses`. | В документации Langflow описан совместимый с OpenAI endpoint Responses API. | Запустите PoC или выполните ручной curl-запрос к `/api/v1/responses`. |
| API Responses Langflow принимает ID потока (flow ID) в качестве значения `model`. | В документации Langflow указано, что значение `model` заменяется на `flow_id`. | Изучите тело запроса в PoC. |
| Запросы к API Langflow требуют API-ключ через `x-api-key`. | В документации API Langflow описана аутентификация по API-ключу с помощью заголовка `x-api-key`. | Изучите заголовки запроса в PoC. |
| PoC основан на HTTP-запросах. | `poc/validate_idor.py` отправляет HTTP-запросы и не вызывает Docker, Docker Compose, shell-команды или контейнерные API. | Изучите `poc/validate_idor.py`. |
| Уязвимая цель выполняет flow, принадлежащий жертве, с использованием API-ключа атакующего. | Уязвимый ответ возвращает `VICTIM_ONLY_CONTEXT_55255_VULN`. | Запустите команду PoC для уязвимой версии с ID flow жертвы и API-ключом атакующего. |
| Исправленная цель блокирует тот же путь выполнения между пользователями. | Исправленный ответ возвращает `error.code = flow_not_found` и не возвращает маркер жертвы. | Запустите команду PoC для исправленной версии с ID flow жертвы и API-ключом атакующего. |

## Допущения и неизвестные

Эта лабораторная работа использует Langflow 1.9.0 в качестве уязвимой цели для сравнения, поскольку уведомление GitHub GHSA-qrpv-q767-xqq2 указывает версии до 1.9.1 как затронутые, а локальное тестирование подтвердило уязвимое поведение в 1.9.0.

Эта лабораторная работа использует Langflow 1.9.1 в качестве исправленной цели для сравнения, поскольку уведомление GitHub GHSA-qrpv-q767-xqq2 указывает 1.9.1 как исправленную версию, а локальное тестирование подтвердило, что 1.9.1 блокирует проверяемый путь выполнения `/api/v1/responses` между пользователями с ошибкой `flow_not_found`.

Между источниками существует расхождение в версиях. В уведомлениях GitHub и GitLab перечислены версии до 1.9.1 как затронутые, а 1.9.1 — как исправленная. Некоторые вторичные страницы с данными об уязвимостях упоминают 1.9.2 или содержат неоднозначные формулировки относительно исправленной версии. Этот репозиторий документирует данное расхождение и напрямую проверяет протестированное поведение:```text
Langflow 1.9.0
→ attacker API key + victim flow UUID
→ victim marker returned
→ vulnerable behavior observed

Langflow 1.9.1
→ attacker API key + victim flow UUID
→ flow_not_found
→ victim marker not returned
→ blocked behavior observed

В этой лабораторной работе предполагается, что атакующий уже знает UUID потока жертвы. PoC не перебирает идентификаторы потоков, не перечисляет потоки и не пытается обнаружить идентификаторы потоков жертвы.

Эта лабораторная работа сосредоточена на наблюдаемом HTTP-поведении:```text POST /api/v1/responses

с такой формой запроса:```json
{
  "model": "<victim-flow-id>",
  "input": "cross-user CVE-2026-55255 validation request",
  "stream": false
}

Лабораторная работа демонстрирует несанкционированное выполнение потока между пользователями в уязвимой цели и блокируемое поведение в исправленной цели.

Лабораторная работа не демонстрирует:

  • перебор UUID потоков,
  • перечисление ID потоков,
  • кражу учетных данных,
  • дамп базы данных,
  • использование реальных API-ключей LLM-провайдеров,
  • доступ к реальным производственным данным,
  • внешние обратные вызовы,
  • удаленное выполнение команд,
  • вредоносное ПО,
  • закрепление,
  • или атаки на системы, не относящиеся к лабораторной работе.

Краткое описание первопричины

Первопричина CVE-2026-55255 — недостаток авторизации в логике разрешения потоков Langflow.

Конечная точка /api/v1/responses принимает UUID потока через поле model. В уязвимых версиях путь поиска UUID внутри get_flow_by_id_or_endpoint_name() мог загружать объект Flow напрямую по первичному ключу, не проверяя, что разрешённый Flow.user_id соответствует пользователю, аутентифицированному по API-ключу.

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