MaxKB — это ИИ-помощник с открытым исходным кодом для предприятий. В версиях 2.7.1 и ниже неполный механизм защиты песочницы позволяет аутентифицированному пользователю с правами на выполнение инструмента выйти из песочницы на основе LD_PRELOAD. С помощью команды env злоумышленник может очистить переменные среды и отключить перехватчик sandbox.so, что приведет к неограниченному удаленному выполнению кода (RCE) и доступу к сети.
MaxKB ограничивает выполнение ненадежного кода Python через API отладки инструментов, внедряя sandbox.so через переменную среды LD_PRELOAD. Это перехватывает конфиденциальные функции библиотеки C (такие как execve, сокет, открытие) для ограничения доступа к сети и файлам. Однако исправление позволило пользователю, находящемуся в песочнице, запускать утилиту /usr/bin/env.
Когда злоумышленнику разрешено создавать подпроцессы, он может выполнить команду env -i python. Флаг -i указывает env полностью очистить все переменные среды перед запуском целевой программы. Это фактически удаляет переменную среды LD_PRELOAD.
Таким образом, вновь созданный процесс Python будет выполняться в исходном режиме без каких-либо перехватчиков песочницы, минуя все ограничения сети и файловой системы. Эта проблема исправлена в версии 2.8.0.
Показать оригинальное описание (EN)
MaxKB is an open-source AI assistant for enterprise. In versions 2.7.1 and below, an incomplete sandbox protection mechanism allows an authenticated user with tool execution privileges to escape the LD_PRELOAD-based sandbox. By env command the attacker can clear the environment variables and drop the sandbox.so hook, leading to unrestricted Remote Code Execution (RCE) and network access. MaxKB restricts untrusted Python code execution via the Tool Debug API by injecting sandbox.so through the LD_PRELOAD environment variable. This intercepts sensitive C library functions (like execve, socket, open) to restrict network and file access. However, a patch allowed the /usr/bin/env utility to be executed by the sandboxed user. When an attacker is permitted to create subprocesses, they can execute the env -i python command. The -i flag instructs env to completely clear all environment variables before running the target program. This effectively drops the LD_PRELOAD environment variable. The newly spawned Python process will therefore execute natively without any sandbox hooks, bypassing all network and file system restrictions. This issue has been fixed in version 2.8.0.
Характеристики атаки
Последствия
Строка CVSS v3.1