Уязвимость в ChromaDB позволяет злоумышленникам удаленно выполнять код на серверах

Chromadb уязвимость Rce векторная база данных Hiddenlayer csoonline.com

Исследователи раскрыли критическую уязвимость CVE-2026-45829 в векторной базе данных ChromaDB, позволяющую неаутентифицированным злоумышленникам выполнять произвольный код и получать доступ к конфиденциальным данным через API-сервер. — csoonline.com

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

Проблема, отслеживаемая как CVE-2026-45829, находится в API-сервере ChromaDB и была обнародована исследователями из HiddenLayer после того, как они, по сообщениям, не смогли связаться с разработчиками ChromaDB, одной из самых популярных векторных баз данных, используемых для приложений искусственного интеллекта.

Уязвимость вызвана состоянием гонки между кодом, который ChromaDB использует для разбора ссылок на модели встраивания (embedding model references), и кодом, который он использует для выполнения проверки аутентификации. Злоумышленники могут использовать этот недостаток, отправляя запросы на загрузку вредоносных конфигураций моделей, размещенных на Hugging Face.

«Аутентификация не отсутствует, она просто находится не на своем месте», — заявили исследователи из компании по безопасности HiddenLayer в своем отчете. «К тому моменту, когда она срабатывает, модель уже загружена и выполнена. Сервер отклоняет запрос, возвращает 500, а полезная нагрузка злоумышленника уже выполнилась».

По данным HiddenLayer, уязвимость существует в ChromaDB версий от 1.0.0 до 1.5.8, и многочисленные попытки сообщить о ней разработчикам с февраля через различные каналы связи остались без ответа, что и послужило причиной публичного раскрытия. Более 73% экземпляров ChromaDB, общедоступных в интернете и обнаруживаемых через поисковую систему Shodan, работают с уязвимой версией.

Пока не выйдет исправление, исследователи советуют развертывать серверы ChromaDB, используя реализацию на Rust, которая не затронута, вместо сервера на Python FastAPI. Сетевой доступ к порту ChromaDB также следует ограничить только доверенными IP-адресами.

Две отдельные проблемы объединяются в RCE без аутентификации

Векторные базы данных, такие как ChromaDB, часто используются для расширения знаний больших языковых моделей (LLM) с помощью сторонних или специфических для компании данных в рамках рабочих процессов генерации с дополненным поиском (RAG). Эти данные, как правило, неструктурированные по своему происхождению, хранятся в векторной базе данных в виде математических представлений, называемых векторными встраиваниями (vector embeddings).

Для преобразования неструктурированных данных, таких как текст, изображения или аудио, в векторные встраивания необходимо использовать специализированные алгоритмы машинного обучения, известные как модели встраивания. Эти модели могут быть оптимизированы для конкретных вариантов использования. В результате ChromaDB и другие векторные базы данных предоставляют пользователям возможность выбирать между различными моделями встраивания для этих преобразований.

ChromaDB упорядочивает документы по коллекциям, и каждой коллекции может быть назначена определенная функция встраивания, которая диктует, как документы встраиваются, с какой моделью и с какими параметрами. Одним из таких параметров может быть trust_remote_code: true, который предписывает загрузчику моделей загружать и выполнять любые дополнительные файлы Python-модулей, поставляемые с моделью.

В результате неаутентифицированные злоумышленники могут отправить запрос на API-сервер ChromaDB для создания новой коллекции с пользовательской функцией встраивания, которая указывает на вредоносную модель, опубликованную ими на Hugging Face, как обнаружили исследователи HiddenLayer.

«Это тот же класс риска, о котором мы писали ранее в контексте вредоносных моделей на Hugging Face и небезопасной десериализации в артефактах машинного обучения», — заявили исследователи HiddenLayer. «Модель — это не пассивные данные. Это код, и загрузка его из недоверенного источника эквивалентна запуску недоверенного кода».

Но разве аутентификация конечной точки API ChromaDB не должна предотвращать это?

Здесь в игру вступает вторая проблема. Оказывается, серверный код ChromaDB обрабатывает такие запросы до проверки аутентификации. И в процессе обработки запроса он извлекает ссылку на модель из Hugging Face для настройки конфигурации встраивания.

Таким образом, даже если коллекция в конечном итоге не создается из-за сбоя последующей проверки аутентификации, вредоносный Python-код, сопровождающий модель, все равно загружается и выполняется.

«Со стороны это выглядит как неудачный вызов API», — сказали исследователи. «[Но] на стороне злоумышленника на сервере появляется шелл».

Поскольку код злоумышленника наследует разрешения пользователя, запускающего API-сервер ChromaDB, он имеет доступ ко всему на машине, к чему также имеет доступ процесс сервера. Это означает переменные окружения, ключи API, смонтированные секреты и данные, хранящиеся на диске.

Это последняя в череде атак, которые становятся возможными благодаря злонамеренно созданным моделям ИИ и соответствующим файлам конфигурации. Ранее в этом месяце исследователи HiddenLayer продемонстрировали, как можно добиться удаленного выполнения кода, внеся небольшие изменения в файл tokenizer.json модели, который используется для сопоставления идентификаторов токенов со словами или символами, создавая алфавит, который модель использует для генерации своих результатов.

В прошлом году исследователи показали, как злоумышленники могут скрывать вредоносный код внутри файлов Pickle на Python — формата, который обычно используется для распространения моделей ИИ.

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

Похожие новости: