AnythingLLM — это приложение, которое превращает фрагменты контента в контекст, который любой LLM может использовать в качестве ссылок во время общения. До версии 1.13.0 навык агента файловой системы-поиска-файлов передает параметр шаблона, управляемый LLM, в ripgrep в качестве позиционного аргумента без разделителя -- в конце опций. ripgrep анализирует любой аргумент, начинающийся с -, в качестве опции, поэтому шаблон --pre=/bin/sh превращает ripgrep в исполнителя скриптов: он запускает /bin/sh <file> для каждого файла, который он просматривает. Злоумышленник, который может общаться с агентом при развертывании с включенным плагином файловой системы (по умолчанию в официальном образе Docker), может использовать это вместе с родственным навыком filesystem-write-text-file для запуска произвольных команд внутри серверного контейнера AnythingLLM.
Эта уязвимость исправлена в версии 1.13.0.
Показать оригинальное описание (EN)
AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. Prior to 1.13.0, the filesystem-search-files agent skill passes its LLM-controlled pattern parameter to ripgrep as a positional argument without a -- end-of-options separator. ripgrep parses any argument that starts with - as an option, so a pattern of --pre=/bin/sh turns ripgrep into a script executor: it runs /bin/sh <file> for every file it walks. An attacker who can chat with an agent on a deployment with the filesystem plugin enabled (the default in the official Docker image) can use this, together with the sibling filesystem-write-text-file skill, to run arbitrary commands inside the AnythingLLM server container. This vulnerability is fixed in 1.13.0.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Mintplexlabs Anythingllm
cpe:2.3:a:mintplexlabs:anythingllm:*:*:*:*:*:*:*:*
|
— |
1.13.0
|