mcp-shell — это сервер MCP для безопасного, контролируемого выполнения команд оболочки и по требованию. До версии 0.6.0 файл Security.yaml по умолчанию разрешает /usr/bin/git, а в файле Security.go отсутствует! из containsShellMetacharacters и containsDangerousShellConstructs и не применяет политику аргументов для каждого исполняемого файла. Вызывающий инструмент MCP Shell_exec может предоставить аргумент команды /usr/bin/git -c alias.pwn=!<произвольная-команда>, заставляя Git создать псевдоним оболочки и выполнять произвольные команды ОС от имени пользователя процесса mcp-shell.
Образ Docker по умолчанию запускается как mcpuser с установленным Git и включенным безопасным режимом, поэтому обход можно использовать в развертывании по умолчанию без дополнительной аутентификации, помимо подключения MCP. Эта проблема исправлена в версии 0.6.0.
Показать оригинальное описание (EN)
mcp-shell is an MCP server for running shell commands securely, auditably, and on demand. Prior to 0.6.0, the default security.yaml allows /usr/bin/git, while security.go omits ! from containsShellMetacharacters and containsDangerousShellConstructs and applies no per-executable argument policy. A caller of the shell_exec MCP tool can provide the command argument /usr/bin/git -c alias.pwn=!<arbitrary-command>, causing Git to create a shell alias and execute arbitrary OS commands as the mcp-shell process user. The default Docker image runs as mcpuser with Git installed and secure mode enabled, so the bypass is exploitable in the default deployment without additional authentication beyond MCP connectivity. This issue is fixed in version 0.6.0.
Характеристики атаки
Последствия
Строка CVSS v3.1