Langflow — это инструмент для создания и развертывания агентов и рабочих процессов на базе искусственного интеллекта. До версии 1.5.1 помощник `_read_flow` в `src/backend/base/langflow/api/v1/flows.py` разветвлялся на настройку `AUTO_LOGIN`, чтобы решить, следует ли фильтровать по `user_id`. Когда `AUTO_LOGIN` имел значение False (т. е. была включена аутентификация), ни одна из ветвей не применяла проверку владения — запрос возвращал любой поток, соответствующий заданному UUID, независимо от того, кто им владел.
Это позволяло любому аутентифицированному пользователю читать любой поток другого пользователя, включая встроенные ключи API в виде открытого текста; изменять логику ИИ-агентов другого пользователя и/или удалять потоки, принадлежащие другим пользователям. Уязвимость была связана с условной логикой, которая предназначалась для размещения общедоступных/примерных потоков (с `user_id = NULL`) в режиме автоматического входа, но случайно оставила аутентифицированный путь без фильтра владения. Исправление в версии 1.5.1 полностью удаляет условие `AUTO_LOGIN` и безоговорочно ограничивает запрос запрашивающим пользователем.
Показать оригинальное описание (EN)
Langflow is a tool for building and deploying AI-powered agents and workflows. Prior to version 1.5.1, the `_read_flow` helper in `src/backend/base/langflow/api/v1/flows.py` branched on the `AUTO_LOGIN` setting to decide whether to filter by `user_id`. When `AUTO_LOGIN` was `False` (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it. This allowed any authenticated user to read any other user's flow, including embedded plaintext API keys; modify the logic of another user's AI agents, and/or delete flows belonging to other users. The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with `user_id = NULL`) under auto-login mode, but inadvertently left the authenticated path without an ownership filter. The fix in version 1.5.1 removes the `AUTO_LOGIN` conditional entirely and unconditionally scopes the query to the requesting user.
Характеристики атаки
Последствия
Строка CVSS v4.0