Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Уязвимости во фреймворке для разработки ИИ Chainlit позволяют скомпрометировать серверы

Критические уязвимости в популярном фреймворке для разработки ИИ Chainlit позволяют злоумышленникам читать произвольные файлы и данные из баз данных серверов. Неустраненные недостатки могут привести к утечке ключей API и токенов, облегчая горизонтальное перемещение в инфраструктуре. Уязвимости исправлены в версии 2.9.4. Две уязвимости в популярном фреймворке для разработки ИИ Chainlit могут позволить злоумышленникам считывать произвольные файлы и содержимое баз данных с серверов. Если эти недостатки не устранить, они могут дать возможность атакующим скомпрометировать ключи API и другие секретные токены для облегчения горизонтального перемещения внутри инфраструктуры организации. «Эти уязвимости могут быть активированы без какого-либо взаимодействия с пользователем», — заявили исследователи из компании Zafran в отчете о недостатках Chainlit. «Zafran подтвердила наличие уязвимостей в реальных, доступных из интернета приложениях, используемых крупными предприятиями». Chainlit — это пакет
Оглавление

Критические уязвимости в популярном фреймворке для разработки ИИ Chainlit позволяют злоумышленникам читать произвольные файлы и данные из баз данных серверов. Неустраненные недостатки могут привести к утечке ключей API и токенов, облегчая горизонтальное перемещение в инфраструктуре. Уязвимости исправлены в версии 2.9.4.

Две уязвимости в популярном фреймворке для разработки ИИ Chainlit могут позволить злоумышленникам считывать произвольные файлы и содержимое баз данных с серверов. Если эти недостатки не устранить, они могут дать возможность атакующим скомпрометировать ключи API и другие секретные токены для облегчения горизонтального перемещения внутри инфраструктуры организации.

«Эти уязвимости могут быть активированы без какого-либо взаимодействия с пользователем», — заявили исследователи из компании Zafran в отчете о недостатках Chainlit. «Zafran подтвердила наличие уязвимостей в реальных, доступных из интернета приложениях, используемых крупными предприятиями».

Chainlit — это пакет на Python для создания приложений ИИ с интерфейсами чат-ботов. Он управляет аутентификацией и предлагает интеграцию с различными серверными системами, базами данных и облачными сервисами. За последний год фреймворк скачали более 5 миллионов раз из Python Index (PyPI), и его часто упоминают в руководствах по созданию пользовательских интерфейсов для RAG-систем и других приложений на базе больших языковых моделей (LLM).

Две уязвимости, отслеживаемые как CVE-2026-22218 и CVE-2026-22219, были исправлены в версии 2.9.4, выпущенной в прошлом месяце. В примечаниях к выпуску тогда упоминалось «исправление уязвимости безопасности», но никаких других подробностей не было до тех пор, пока на этой неделе не было опубликовано официальное уведомление об уязвимости.

Чтение произвольных файлов через пользовательские элементы

Первая уязвимость (CVE-2026-22218) находится в классе Element фреймворка. В Chainlit элементы — это фрагменты контента, которые могут быть прикреплены к сообщению, например изображения, PDF-файлы, видео, аудиофайлы и датафреймы.

Класс Element также поддерживает пользовательский тип для отображения файлов JavaScript XML (JSX) внутри сообщения. Файлы JSX расширяют синтаксис JavaScript для отображения HTML и часто используются такими библиотеками, как React.

Исследователи Zafran обнаружили, что этот пользовательский элемент дает злоумышленникам контроль над всеми его свойствами, поскольку он не выполняет валидацию полей. Например, если злоумышленники отправят пользовательский элемент со свойством `path`, указывающим на любой файл на сервере, этот файл будет возвращен в сеанс пользователя.

Из-за этого недостаток позволяет атакующим читать любые произвольные файлы с сервера, многие из которых могут содержать конфиденциальную информацию. Например, файл /proc/self/environ используется для хранения переменных окружения, а они могут содержать ключи API, учетные данные, внутренние пути к файлам, пути к базам данных, токены для AWS и других облачных сервисов, и даже CHAINLIT_AUTH_SECRET — секрет, используемый для подписи токенов аутентификации при включении этой функции.

Более того, если LangChain используется в качестве уровня оркестрации за Chainlit и включено кэширование, запросы пользователей, отправляемые в LLM, и соответствующие ответы сохраняются в файл с именем .chainlit/.langchain.db. Этот файл хранит запросы для всех пользователей и клиентов, поэтому злоумышленники могут периодически извлекать его для получения конфиденциальной информации. Эксплойт PoC от Zafran включал утечку именно этого файла.

Межсайтовая подделка запросов

Вторая уязвимость (CVE-2026-22218) использует тот же пользовательский элемент в качестве вектора атаки, но эксплуатирует его иным образом — через свойство URL. Задавая это поле, злоумышленники могут заставить сервер инициировать запрос по указанному URL для получения его содержимого и сохранения его в базе данных.

По умолчанию Chainlit использует PostgreSQL, но также может применять SQLAlchemy с различными бэкендами, такими как SQLite или облачные хранилища, например AWS S3 или Azure Blobs. Эксплуатируя эту уязвимость, атакующие могут инициировать межсайтовую подделку запросов (SSRF) для получения учетных данных.

«Если Chainlit развернут на инстансе AWS EC2 с включенным IMDSv1, уязвимость SSRF может быть использована для доступа к http://169.254.169.254/latest/meta-data/iam/security-credentials/ и получения конечных точек роли, что позволит осуществлять горизонтальное перемещение в пределах облачной учетной записи», — сообщили исследователи.

Комбинируя эти два недостатка, злоумышленники могут извлечь большой объем информации и учетных данных, а также саму базу данных или файлы исходного кода приложения, которые могут содержать пользовательский код.

«После получения облачных учетных данных или токенов IAM с сервера злоумышленник больше не ограничен приложением», — написали исследователи в своем отчете. «Он получает доступ к облачной среде, стоящей за ним. Доступными для атакующего могут стать корзины хранения, менеджеры секретов, LLM, внутренние данные и другие облачные ресурсы».

В отчете Zafran содержатся сигнатуры для системы обнаружения сетевых вторжений Snort и для веб-брандмауэра Cloudflare, которые можно использовать для блокировки попыток атак до тех пор, пока приложения не будут обновлены до пропатченной версии Chainlit.

*Facebook, *Instagram и *WhatsApp принадлежат компании Meta Platforms Inc., деятельность которой признана экстремистской и запрещена на территории Российской Федерации.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Lucian Constantin

Оригинал статьи