🇰🇷 한글 설명
mcp-shell 0.6.0 미만 버전에서 보안 설정 파일의 허용 목록 검증 로직에 결함이 존재합니다. 공격자가 /bin/bash -c 옵션을 사용하여 허용되지 않은 임의의 명령어를 실행할 수 있는 취약점입니다.
💡 쉬운 설명
허용된 프로그램만 실행할 수 있어야 하는데, 명령어를 우회하는 특수 옵션을 사용하면 공격자가 원하는 악성 명령을 몰래 실행할 수 있는 문제입니다. 마치 출입 명단에 있는 사람만 들어올 수 있는데, 가방 안에 몰래 다른 물건을 숨겨 들어오는 것과 같습니다.
🇺🇸 원문 (English)
mcp-shell is an MCP server for running shell commands securely, auditably, and on demand. Prior to 0.6.0, the default Docker security.yaml includes /bin/bash in allowed_executables, while security.go validates only the first token and checkBlockedPatternsAndCommands does not reject the shell command-mode flag -c. A caller of the shell_exec MCP tool can provide the command argument `/bin/bash -c <arbitrary-command>`, which passes validation and reaches executor.go, where parseCommand and exec.CommandContext execute the arbitrary command as mcpuser outside the intended allowlist. This issue is fixed in version 0.6.0.
📍 영향받는 시스템
mcp-shell version < 0.6.0
⚔️ 공격 벡터
shell_exec MCP 도구의 인자에 '/bin/bash -c <임의의 명령어>'를 전달하여 검증 로직을 우회함
🛡️ 대응 방법
mcp-shell을 0.6.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 결과로 0.6.0 미만의 버전 번호가 출력되면 취약한 버전이 설치된 상태입니다.
mcp-shell --version 2>/dev/null | grep -E '0\.[0-5][0-9]'