IBM опубликовала серию бюллетеней безопасности, в которых сообщила об устранении множества уязвимостей в продукте Langflow OSS версий с 1.0.0 по 1.10.0 (а также 1.10.1 для некоторых проблем). Наибольшую опасность представляют несколько уязвимостей, позволяющих неаутентифицированному злоумышленнику получить полный контроль над сервером. В общей сложности закрыто более двух десятков ошибок безопасности, многие из которых имеют критический уровень CVSS - до 10.0 по шкале v4 и до 9.9 по v3.
Детали уязвимостей
Набор уязвимостей охватывает широкий спектр векторов: от удалённого выполнения кода через API до обхода аутентификации и подделки токенов. В частности, одной из самых серьёзных является цепочка, объединяющая endpoint auto_login и endpoint validate/code. В конфигурации по умолчанию API "/api/v1/login/auto_login" выдаёт суперпользовательские bearer-токены без какой-либо аутентификации. Используя такой токен, атакующий может обращаться к "POST /api/v1/validate/code", который принимает произвольный Python-код и выполняет его через exec() без ограничений. Эта комбинация зарегистрирована как CVE-2026-9198 с максимальным баллом 9.8 CVSS v3 и позволяет неаутентифицированному удалённому атакующему выполнить произвольные команды на сервере.
Ещё одна цепочка уязвимостей связана с механизмом вебхуков. В стандартной установке параметр WEBHOOK_AUTH_ENABLE по умолчанию равен False. Это означает, что любой злоумышленник, знающий UUID потока, может запустить его без аутентификации. Учитывая, что потоки могут содержать Python-компоненты, это также ведёт к удалённому выполнению кода (CVE-2026-8505, CVSS 9.8). Дополнительно уязвимость CVE-2026-9202 позволяет неаутентифицированным пользователям создавать неограниченное количество учётных записей, и если параметр NEW_USER_IS_ACTIVE установлен в true, новые учётные записи сразу активны и могут получать доступ к функциям выполнения кода.
Критическая уязвимость также обнаружена в механизме дискового кэша AsyncDiskCache. Класс использует небезопасную функцию pickle.loads() для десериализации кэшированных объектов без какой-либо проверки целостности. Злоумышленник, способный повлиять на данные кэша через файловую систему, вредоносные входные данные потока или манипуляции с API, может добиться выполнения произвольного кода с привилегиями серверного процесса (CVE-2026-8476, CVSS 9.9).
Отдельное внимание заслуживают проблемы с повышением привилегий и раскрытием конфиденциальной информации. Уязвимость CVE-2026-8635 позволяет аутентифицированному пользователю через компонент Python Interpreter напрямую манипулировать базой данных и назначать себе права суперпользователя, а также выполнять системные команды. Почти столь же опасна уязвимость CVE-2026-9135 - внедрение кода в Policies component ToolGuard. Злоумышленнику с правами на создание потоков достаточно добавить вредоносный Python-код в динамические поля, которые игнорируются стандартным валидатором компонентов (CVSS 9.9).
Несколько уязвимостей затрагивают обход пути и чтение произвольных файлов. Например, через специально сформированный tar-архив с символическими ссылками аутентифицированный пользователь может прочитать JWT-ключ подписи, после чего подделать токены для любого пользователя (CVE-2026-7872). Другая уязвимость (CVE-2026-8859) позволяет записывать произвольные файлы через неочищенные заголовки Content-Disposition в компоненте APIRequest - в официальном Docker-образе это может привести к выполнению кода при следующем перезапуске контейнера.
Кроме того, обнаружены проблемы с SSRF (CVE-2026-7754) из-за небезопасной конфигурации по умолчанию, обход валидации конфигураций MCP-сервера через файловый API (CVE-2026-7755), а также внедрение параметров в API Graph Execution Engine (CVE-2026-8056), позволяющее переопределять настройки компонентов во время выполнения.
Вторая волна уязвимостей, охватывающая версии до 1.10.1, включает проблемы с несанкционированным доступом к векторным хранилищам других пользователей (CVE-2026-13442, CVE-2026-13444), нарушение границ владения файлами (CVE-2026-13445), жёстко заданные учётные данные (CVE-2026-13446), обход каталогов (CVE-2026-12942), доступ к заданиям сборки других пользователей (CVE-2026-12945), а также удалённое выполнение кода через инъекцию переменных окружения MCP (CVE-2026-12940, CVSS 9.8) и неполный денлист компонентов в публичном endpoint сборки (CVE-2026-13448).
"IBM настоятельно рекомендует устранить эти уязвимости, выполнив обновление Langflow OSS до версии 1.10.1 (для проблем первой волны) и до версии 1.10.2 (для более поздних бюллетеней)", - говорится в бюллетене компании. Для большинства уязвимостей временные меры защиты не предусмотрены, так как исправления включены только в состав обновлённых версий.
Платформа Langflow OSS широко используется для построения AI-агентов и визуальных воркфлоу, она работает в облачных средах и локально. Разнообразие и критичность закрытых уязвимостей делают установку патчей обязательной для всех инсталляций, особенно для тех, которые доступны из внешней сети. Совокупность проблем, начиная от неаутентифицированного выполнения кода и заканчивая подделкой токенов и межпользовательским доступом, позволяет злоумышленнику полностью скомпрометировать платформу. Выход двух раундов исправлений в течение двух недель подчёркивает масштаб работы, проделанной IBM над безопасностью продукта.
Ссылки
- https://www.ibm.com/support/pages/node/7278920
- https://www.ibm.com/support/pages/node/7278921
- https://www.ibm.com/support/pages/node/7278922
- https://www.ibm.com/support/pages/node/7278923
- https://www.ibm.com/support/pages/node/7278924
- https://www.ibm.com/support/pages/node/7278925
- https://www.ibm.com/support/pages/node/7278926
- https://www.ibm.com/support/pages/node/7278927
- https://www.ibm.com/support/pages/node/7278929
- https://www.ibm.com/support/pages/node/7278930
- https://www.ibm.com/support/pages/node/7278931
- https://www.ibm.com/support/pages/node/7278932
- https://www.ibm.com/support/pages/node/7278933
- https://www.ibm.com/support/pages/node/7278934
- https://www.ibm.com/support/pages/node/7279987
- https://www.ibm.com/support/pages/node/7279988
- https://www.ibm.com/support/pages/node/7279989
- https://www.ibm.com/support/pages/node/7279990
- https://www.ibm.com/support/pages/node/7279991
- https://www.ibm.com/support/pages/node/7279993
- https://www.ibm.com/support/pages/node/7279994
- https://www.ibm.com/support/pages/node/7279995
- https://www.ibm.com/support/pages/node/7279996
- https://www.ibm.com/support/pages/node/7279997