Агент ноль-ноль-дырка. Разбираем CVE в популярном ИИ-инструменте Langflow

Агент ноль-ноль-дырка. Разбираем CVE в популярном ИИ-инструменте Langflow

Содержание статьи

Статья носит озна­коми­тель­ный харак­тер и пред­назна­чена для спе­циалис­тов по безопас­ности, которые про­водят тес­тирова­ние в рам­ках кон­трак­та. Автор и редак­ция не несут ответс­твен­ности за вред, при­чинен­ный с исполь­зовани­ем изло­жен­ной информа­ции. Рас­простра­нение вре­донос­ных прог­рамм, наруше­ние работы сис­тем и тай­ны перепис­ки прес­леду­ются по закону.

Langflow — визу­аль­ный конс­трук­тор для соз­дания ИИ‑при­ложе­ний и чат‑ботов. Он нужен, что­бы собирать слож­ные рабочие пай­плай­ны, под­клю­чать LLM и век­торные базы дан­ных прос­тым перетас­кивани­ем. В Langflow ты можешь соб­рать бота вооб­ще без кода или с минималь­ным скрип­тингом. Кон­цепту­аль­но сис­тема похожа на n8n, но более нишевая.

У про­екта 151 тысяча звезд на GitHub и 9500 фор­ков. Про­дукт популяр­ный, поэто­му такая уяз­вимость как CVE-2026-3301 выг­лядит прос­то несерь­езно. У API Langflow есть метод / api/ v1/ build_public_tmp/{ flow_id}/ flow — он нужен для запус­ка рабочих про­цес­сов в пуб­личном режиме без авто­риза­ции. Любой жела­ющий может выз­вать этот метод, но в том и смысл пуб­личных эндпо­интов.

Ин­терес­ный факт: уяз­вимость не экс­плу­ати­рова­ли хакеры. Но ког­да иссле­дова­тели выкати­ли пуб­личное опи­сание уяз­вимос­ти без PoC и деталей, хакеры взя­лись за свое тем­ное дело. Пот­ребова­лось при­мер­но двад­цать часов, что­бы появил­ся экс­пло­ит и пош­ли пер­вые ата­ки.

Единс­твен­ный нюанс — объ­ект data . Если отпра­вишь в зап­росе свой объ­ект, Langflow исполь­зует имен­но его, а не тот, который лежит в базе дан­ных. Под­мена объ­екта удоб­на для дебага, но опас­на без жес­ткой филь­тра­ции. А филь­тра­ции не было.

От­сле­дить проб­лему мож­но в исходни­ках уяз­вимой вер­сии. Коман­ды для ска­чива­ния:

Глав­ная проб­лема — в фай­ле / src/ backend/ base/ langflow/ api/ v1/ chat. py , стро­ка 633. Фун­кция соз­дает джоб, в который без филь­тра­ции и про­верок попада­ет data :

Раз­работ­чик пофик­сил CVE, убрав воз­можность под­менять data сво­им объ­ектом. Это вид­но в ком­мите 73b6...d4f0 .

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

9990 рублей 5000 р.

950 р.

Специалисты из Тель-Авивского университета, Израильского технологического института и комп…

← Cybersecurity