Абстрактная техническая иллюстрация на бледном тёпло-сером фоне: широкая панель конфигурации почти белого цвета с едва заметными линованными рядами полей расположена левее центра, а небольшой круглый бирюзовый жетон-замочная скважина сходит с её верхнего края вдоль тонкой бирюзовой линии к плоскому серверному блоку сланцево-серого цвета справа. Ниже панели тёмное скруглённое поле содержит пару тонких янтарных угловых скобок, и вторая тонкая янтарная линия идёт оттуда к нижнему краю того же блока; один маленький янтарный квадрат отмечает точку соединения, где встречаются оба пути. Более тусклый второй серверный блок находится позади первого. Плоская векторная геометрия с мягкими тенями и широкими полями; нигде не появляются текст, буквы, цифры, люди или логотипы организаций. Логотип OrcaRouter встроен в правый нижний угол белой полосы под иллюстрацией.
AI Safety Incidents

CVE-2026-9198: Langflow выдавал суперпользовательские токены кому угодно, а затем выполнял то, что ему отправляли

Автор

Rowan Sterling

Дата публикации

Новые модели · 20Все модели →
Бенчмарки: Artificial Analysis · обновляется ежедневно
Назад ко всем статьям

Бюллетень IBM по CVE-2026-9198 описывает захват Langflow OSS за два запроса: обращение к эндпоинту автоматического входа платформы возвращает bearer-токен суперпользователя любому, кто его запросит, а второй запрос отправляет Python на эндпоинт проверки кода, который его выполняет. Производитель регистрирует обе половины этой цепочки под разными идентификаторами — CVE-2026-9103 для отсутствующей аутентификации, CVE-2026-8481 для выполнения, — и оценивает комбинацию в 9,8 по CVSS 3.1: она достижима по сети без привилегий и без взаимодействия с пользователем. Уязвимы развёртывания по умолчанию на версиях от 1.0.0 до 1.10.0; исправление — 1.10.1, и IBM не указывает обходных путей. Агентство по кибербезопасности и защите инфраструктуры США 4 августа 2026 года добавило эту CVE в свой каталог Known Exploited Vulnerabilities с федеральным сроком устранения 7 августа. Запись, её теги severity и harm, а также записи, добавленные вокруг неё, хранятся в the Orca AI Incident Archive, который перечисляет этот инцидент наряду с остальными из серии.

Цепочка — в трёх бюллетенях IBM

IBM публикует эту уязвимость в трёх документах, а не в одном, и именно их совместное прочтение делает механизм понятным. Вся цепочка — это CVE-2026-9198, проблема внедрения кода по CWE-94 с оценкой 9.8 и вектором AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — доступна по сети, низкая сложность, привилегии не требуются, взаимодействие с пользователем не требуется, высокое влияние на конфиденциальность, целостность и доступность. Её первая половина, CVE-2026-9103, — отсутствие аутентификации для критической функции по CWE-306, тоже 9.8. Её вторая половина, CVE-2026-8481, — снова CWE-94, но с оценкой 9.9: AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, низкие привилегии вместо их отсутствия и изменённая область действия.

A dark HTML card titled 'Three identifiers, one chain', kicker 'IBM Langflow OSS, 1.0.0 to 1.10.0', subtitle 'Bulletin identifiers, CWEs and CVSS 3.1 base scores, taken from the three IBM support pages cited in the article'. Three rows, each naming a CVE at left: CVE-2026-9103, missing authentication in the auto-login endpoint, CWE-306, scoring 9.8 with the metrics PR:N, UI:N, S:U, and a note that it issues a SUPERUSER bearer token valid for 365 days when AUTO_LOGIN is enabled, which is the default. CVE-2026-8481, remote code execution in the code-validation endpoint, CWE-94, scoring 9.9 with the metrics PR:L, UI:N, S:C, and a note that it passes submitted Python to exec and is scored with low privileges because the endpoint expects a session. CVE-2026-9198, the chain of the two filed as one vulnerability, CWE-94, scoring 9.8 with the metrics PR:N, UI:N, S:U, and a note that the no-privileges metric comes from the first half and the execution from the second. Two rules below read 'The execution half alone required a session. The missing authentication supplied one.' and 'Neither half is scored 9.8 with no privileges. Only the chain is.' A footer credits IBM as the CVSS source for all three and says the card was rendered by OrcaRouter with no vendor logos. The OrcaRouter logo is composited in the bottom-right corner.

9.9 — это честная часть арифметики. Эндпоинт проверки кода сам по себе никогда не был открыт посторонним — IBM описывает его как уязвимость, позволявшую «любому аутентифицированному пользователю выполнять произвольные системные команды с полными привилегиями процесса сервера Langflow». Незааутентифицированной цепочку делает первая половина: эндпоинт автоматического входа, который, по описанию IBM, «выдаёт долгоживущие bearer-токены суперпользователя, не требуя аутентификации, когда включена конфигурация AUTO_LOGIN (включена по умолчанию)». Бюллетень добавляет, что токены имеют 365-дневный срок жизни, и фиксирует второй путь воздействия, которому уделяется меньше внимания, — разрешающие настройки cross-origin resource sharing по умолчанию, допускающие wildcard-источники с учётными данными, что, по словам IBM, «могло бы позволить кражу токенов типа drive-by с произвольных веб-сайтов».

На части, связанной с выполнением, стоит остановиться подробнее. В сводке IBM говорится, что валидатор «компилировал и выполнял отправленный пользователями код, включая вычисления на этапе определения функции, такие как аргументы по умолчанию и декораторы», и что поэтому злоумышленник мог протащить исполняемое выражение в параметр по умолчанию или в декоратор. Это не метафора о небезопасном коде: декоратор вычисляется при создании охватывающего def, поэтому запрос, единственная заявленная цель которого — проверить синтаксис функции, всё равно исполняет всё, что к ней прикреплено. В собственном бюллетене IBM по цепочке уязвимостей об этом говорится одной фразой: проверка и выполнение были одной и той же операцией. Исправление, зафиксированное в бюллетене CVE-2026-8481, состояло в «удалении выполнения кода из пути проверки и выполнении только проверок компиляции».

A dark HTML card titled 'Two requests, two endpoints', kicker 'CVE-2026-9198, exploit chain', subtitle 'Paths as written in IBM bulletin 7278927; the chain needs no credentials, no user action and no reconnaissance'. Two panels joined by a cyan arrow. REQUEST 1 shows a POST to /api/v1/auto_login with the note that no credentials are supplied and none required and that the response carries a SUPERUSER bearer token with a 365-day lifetime, plus a smaller note that the CVE-2026-9103 bulletin writes this path as /api/v1/login/auto_login. REQUEST 2 shows a POST to /api/v1/validate/code with the token and a Python payload, calling exec with the privileges of the Langflow service process, and a note that the CVE-2026-8481 score is 9.9 with S:C and PR:L. A four-part strip below reads NO PRIVILEGES, vector PR:N; NO USER ACTION, vector UI:N; NO RECON NEEDED, only confirm it runs Langflow; and TWO HTTP CALLS, the whole chain. A closing panel headed 'Why validation was execution' quotes IBM's chained bulletin on default arguments and decorators evaluated at function-definition time, and states that a request whose stated job is to check syntax ran the attached code. A footer credits IBM bulletins 7278927 and 7278923 and says the card was rendered by OrcaRouter. The OrcaRouter logo is composited in the bottom-right corner.

Одно небольшое расхождение стоит зафиксировать, поскольку оно влияет на поиск угроз. В связанном бюллетене конечная точка токена указана как /api/v1/auto_login, так же указывают Cloud Security Alliance и Field Effect; в отдельном бюллетене IBM по CVE-2026-9103 она записана как /api/v1/login/auto_login. Оба документа IBM описывают одну и ту же конечную точку, и ни один из них не ошибается в отношении поведения. Путь выполнения везде записан одинаково: POST /api/v1/validate/code.

Откуда берутся даты

В архиве эта запись датирована 6 августа 2026 года. Запись в каталоге CISA, прочитанная 30 октября 2026 года, фиксирует добавление как 4 августа 2026 года и устанавливает срок устранения на 7 августа. Сопутствующие публикации располагаются по обе стороны от даты архива, а не на ней самой: Field Effect опубликовала материал 5 августа, а cvetodo и национальная команда реагирования на компьютерные чрезвычайные ситуации Таиланда — обе 7 августа. Внесение в список, вытекающий из него срок и написанные о нём статьи — это три разных события, поэтому данные даты не противоречат друг другу, — но двухдневный разрыв между полем архива и данными CISA и есть причина заглянуть в каталог, когда важна точность дня.

Раскрытие информации труднее точно установить, и источники действительно расходятся. На странице бюллетеня IBM для связанной CVE указана первоначальная дата публикации 2 июля 2026 г. и дата изменения — 17 августа 2026 г. Field Effect относит раскрытие IBM к 2 июля. В исследовательской заметке Cloud Security Alliance от 18 августа раскрытие — и выпуск 1.10.1 вместе с ним — датируется 17 июля; cvetodo утверждает то же. Между этими двумя трактовками пятнадцать дней, и ни один документ не является небрежным, поэтому эта статья не выбирает между ними. В любом случае установлено, что патч был опубликован до включения в KEV, и что 1.10.1 — это выпуск, в котором он был представлен.

A dark HTML card titled 'What happened, and when it was written down', kicker 'CVE-2026-9198, five dates', subtitle 'Read from the IBM bulletin metadata and the CISA KEV catalog entry on 30 October 2026, with the source disagreement labelled rather than resolved'. Five rows: 2 July 2026, 'IBM bulletin published', the initial publication date on IBM support page 7278927, with Field Effect giving the same day as the disclosure date; 17 July 2026, 'The other reading of disclosure', highlighted in amber, the date the Cloud Security Alliance and cvetodo give for disclosure and the 1.10.1 release, fifteen days apart from 2 July; 4 August 2026, 'Added to CISA KEV catalog', the date the catalog entry records, with known ransomware use recorded as Unknown and forensic triage required under BOD 26-04; 7 August 2026, 'Federal remediation deadline', also the publication date of the ThaiCERT advisory and of cvetodo's coverage; and 6 August 2026, 'The archive's date for this record', two days after the catalog date and between the 5 August and 7 August coverage. Two rules below read 'Still unresolved in sources: disclosure on 2 July (IBM, Field Effect) or 17 July (Cloud Security Alliance, cvetodo). No tie-break found.' and 'Not in dispute: the patch preceded the KEV listing, and 1.10.1 is the release that carried it.' A footer notes that the catalog entry was read on 30 October 2026 and says the card was rendered by OrcaRouter. The OrcaRouter logo is composited in the bottom-right corner.

То, что запись CISA точно указывает в своих собственных полях, уже, чем её заголовок. Продукт числится за поставщиком IBM как продукт Langflow; уязвимость описана как уязвимость, «которая позволяет неаутентифицированным атакующим добиться полного удалённого выполнения кода в стандартных развёртываниях Langflow»; известное применение в кампаниях программ-вымогателей отмечено как Неизвестно; форензический триаж помечен как обязательный согласно BOD 26-04; требуемое действие — применить меры по смягчению последствий в соответствии с инструкциями поставщика или прекратить использование продукта, если меры по смягчению последствий недоступны.

Запись об эксплуатации

Запись CISA утверждает, что уязвимость эксплуатировалась в реальных атаках. Публичные доказательства в поддержку этого утверждения тоньше, чем позволяет предположить оценка 9.8. Ни IBM, ни CISA не назвали субъект угрозы и не опубликовали подробностей наблюдаемой кампании — Field Effect прямо об этом заявляет, и ничто ни в трёх бюллетенях IBM, ни в записи KEV этому не противоречит.

Вместо этого есть лишь вендорская телеметрия, переданная из вторых рук. В заметке Cloud Security Alliance со ссылкой на KEVIntel утверждается, что попытки эксплуатации фиксировались начиная «примерно с 6 июля 2026 года» — за несколько недель до раскрытия, по собственным подсчётам альянса, — и что к середине августа совокупное число попыток выросло до сотен, исходящих с нескольких сотен уникальных интернет-адресов, распределённых по десяткам стран. Эти цифры взяты у одной мониторинговой компании и не встречаются ни в одном другом источнике, изученном для этой статьи. Они приводятся здесь без подтверждения.

На дату начала стоит взглянуть ещё раз. Если попытки действительно начались около 6 июля, это на четыре дня позже даты бюллетеня, указанной на странице IBM, и на одиннадцать дней раньше даты 17 июля, которую приводят два других источника. Таким образом, телеметрия не подтверждает и не опровергает ни одну из дат раскрытия; Cloud Security Alliance предлагает оба объяснения, не выбирая между ними, и описывает раннюю активность либо как независимое обнаружение оппортунистическими сканерами, либо как утечку технических деталей до скоординированного раскрытия.

Публичный эксплойт-код — это более документированная часть. Field Effect относит публичное описание этой цепочки к «публичному proof-of-concept, опубликованному в июле 2026 года» в репозитории github.com/0xdak/CVE-2026-9198_exploit и утверждает, что код демонстрирует получение токена суперпользователя через конечную точку автоматического входа, а затем его использование против конечной точки валидации. Field Effect не связывает автора этого репозитория ни с какой наблюдаемой эксплуатацией, и эта статья тоже. Ни один из рассмотренных источников также не сообщает о подтверждённой краже учётных данных с эксплуатируемого хоста: описание сбора учётных данных, которое обычно сопровождает уязвимости Langflow, представляет собой оценку того, что может храниться на таком хосте (рассмотрено ниже), а не вывод о каком-либо названном пострадавшем в этой записи.

Установлено, заявлено и не установлено

• Установлено. Что CVE-2026-9198 объединяет в цепочку отсутствие аутентификации в конечной точке автоматического входа с выполнением кода в конечной точке проверки кода; что IBM оценивает эту цепочку в 9.8 по CWE-94, а две её составляющие — в 9.8 и 9.9; что стандартные развертывания Langflow OSS версий с 1.0.0 по 1.10.0 уязвимы на Windows, macOS и Linux; что исправлением является 1.10.1 и IBM не публикует обходных мер; и что CISA добавила CVE в каталог KEV с федеральным сроком 7 августа 2026 года. Три бюллетеня IBM — это основные документы, и они согласуются между собой в отношении механизма.

• Независимо изложено повторно.В своём бюллетене от 7 августа 2026 года ThaiCERT воспроизвёл ту же цепочку из двух конечных точек, ту же оценку 9.8, тот же диапазон затронутых версий и то же исправление 1.10.1, а также добавил меру сетевого контроля, которой нет в бюллетенях IBM: держать административный интерфейс Langflow вне публичного интернета и обращаться к нему только через VPN или строгий список разрешённых адресов. Это служит подтверждением того, как был прочитан бюллетень, со стороны государственного органа, не заинтересованного в формулировках поставщика, а не независимым обнаружением уязвимости.

• Сообщается, но не подтверждено. Все данные об эксплуатации: сотни попыток, несколько сотен адресов, десятки стран, начиная примерно с 6 июля. Это цифры одной мониторинговой компании, переданные через исследовательскую организацию. Включение в список CISA подтверждает, что эксплуатация имела место, но не даёт её количественной оценки, и в просмотренных здесь материалах не фигурирует второй источник телеметрии.

• Не установлено. Нет ни поименованной жертвы, ни поименованного субъекта. Нет атрибуции государству или преступной группе. Нет подтверждённых данных о том, сколько экземпляров Langflow было доступно из интернета — cvetodo сообщал 7 августа, что IBM не ответила на вопросы о масштабах эксплуатации, — и с тех пор нет заявлений производителя с количественной оценкой. Архив присваивает этой записи уровень достоверности A и не помечает её как оспариваемую, и ничто из рассмотренного здесь её не оспаривает; эти пробелы — пробелы в публичных доказательствах, а не в утверждении о том, что уязвимость существует и использовалась.

• Намеренно исключено.Уведомление ThaiCERT также описывает автоматизированное сканирование под управлением ИИ в ту же неделю, но связывает его с другим продуктом в том же выпуске CISA, а не с Langflow. Это не является доказательством, относящимся к этой записи, и здесь в качестве такового не используется.

Что изменилось после листинга?

Исправление от производителя — это только обновление версии, и ничего больше. В таблице затронутых продуктов IBM перечислены версии Langflow OSS с 1.0.0 по 1.10.0, исправлением указана версия 1.10.1, а в поле обходных мер стоит «None» — во всех трёх бюллетенях. В бюллетене CVE-2026-8481 описано изменение: валидатор перестал выполнять код и начал компилировать. В бюллетене CVE-2026-9103, посвящённом части с автоматическим входом, исправление не описано столь же подробно, и ни один рассмотренный здесь документ IBM не указывает дату выпуска 1.10.1.

Рекомендации всех остальных идут дальше, чем рекомендации поставщика. Cloud Security Alliance рекомендует обновить систему, а затем проверить во время выполнения, что эндпоинт автоматического входа больше не выдает токены неаутентифицированным вызывающим сторонам, вместо того чтобы доверять строке версии; заявленная причина — предыдущие патчи Langflow выпускались с неполными исправлениями. Cloud Security Alliance также рекомендует явно установить для параметра среды LANGFLOW_AUTO_LOGIN значение false, чтобы платформа требовала настоящие учетные данные, а не генерировала их, и считать любой экземпляр, доступный из интернета с начала июля, скомпрометированным до проверки журналов, с ротацией учетных данных для всего, до чего мог добраться экземпляр: ключей поставщиков моделей, учетных данных баз данных и ключей облачных сервисов. ThaiCERT добавляет сетевую составляющую: не выставлять административный интерфейс в публичный интернет — только VPN или список разрешенных. И то и другое — рекомендации исследователей. IBM не публикует ничего.

В записи присутствует одна строка с указанием авторства. В благодарностях IBM отчёт приписывается Харишу Колле (Harish Kolla), имя пользователя GitHub — Har1sh-k. Cloud Security Alliance в своей заметке от 18 августа называет CVE-2026-9198 четвёртой отдельной уязвимостью Langflow, связанной с отсутствием аутентификации или обходом авторизации, которая попала в каталог CISA примерно за пять месяцев; там же названы три более ранних идентификатора. По её трактовке, эта картина отражает повторяющееся фрагментарное исправление одной модели аутентификации и выполнения кода, а не несвязанные дефекты. Эта формулировка — оценка альянса, представленная в исследовательской заметке; это не вывод независимого аудитора, и ни один из рассмотренных здесь источников не фиксирует публичного ответа мейнтейнеров на неё.

Что список KEV решает, а что — нет

Каталог CISA — это утверждение о наблюдавшейся эксплуатации, а не отчет об инциденте, и эта запись придерживается той же формы. В ней говорится, что уязвимость использовалась; не говорится, против кого, кем или как часто. Использование программ-вымогателей отмечено как «Неизвестно». Никаких количественных данных не приводится. Что этот перечень все же позволяет установить, так это единственный вопрос, на который не может ответить оценка критичности: перешла ли уязвимость от рабочего proof of concept к реальному использованию. Для организаций вне сферы действия BOD 26-04 — а это большая часть мира — крайний срок 7 августа не влечет обязательств, и факт, стоящий за ним, имеет тот же вес, какой он имел бы при наличии обязательства.

Cloud Security Alliance делает из той же записи операционный вывод: попадание в список KEV — надёжный сигнал того, что эксплуатация перешла стадию proof-of-concept, и что для этой уязвимости это произошло примерно через месяц после первых зафиксированных попыток. Тот, кто ждал появления в каталоге, прежде чем начинать триаж, при таком прочтении уже реагировал на инцидент, а не предотвращал его. Описывает ли это конкретное развёртывание — вопрос к его журналам: искать нужно ту пару эндпоинтов, которую документировала IBM, а в записи не названо ни одной жертвы, на которой можно было бы проверить ответ.