🇰🇷 한글 설명
ToolUniverse의 Python 샌드박스에서 탈출이 가능한 취약점이 발견되었습니다. 공격자는 제한된 속성 검사를 우회하여 프로세스 및 서브프로세스 모듈에 접근할 수 있으며, 인증이 없는 HTTP/MCP 서버를 통해 원격 코드 실행이 가능합니다.
💡 쉬운 설명
프로그램 내부의 보안 벽을 뚫고 들어와 컴퓨터를 마음대로 조종할 수 있는 심각한 결함입니다. 누구나 인증 없이 서버에 접속하여 명령을 내릴 수 있어 매우 위험합니다.
🇺🇸 원문 (English)
ToolUniverse ran caller-supplied Python inside a sandbox that could be escaped, on a server that required no authentication. The executor behind the python_code_executor tool, in python_executor_tool.py, inspected the submitted source for a denied list of attribute names and calls but left the attribute-lookup builtins available and did not stop a dunder attribute reached through a string lookup or through a module already permitted, so a caller could walk from a literal's class to its base and enumerate subclasses to obtain a reference to the process and subprocess modules. A per-call argument also let the caller widen the import allow-list before the inspection ran. The HTTP and MCP servers in http_api_server.py and smcp_server.py bound to every interface with debugging enabled and no authentication, so any caller able to reach the port executed code as the server process. Version 1.3.0 adds bearer-token authentication, defaults the bind address to loopback, and hardens the attribute checks.
📍 영향받는 시스템
ToolUniverse 1.3.0 미만 버전
⚔️ 공격 벡터
인증되지 않은 HTTP/MCP 서버를 통해 특수하게 조작된 Python 코드를 전송하여 샌드박스 탈출 및 원격 코드 실행
🛡️ 대응 방법
ToolUniverse를 1.3.0 이상의 최신 버전으로 업데이트하여 인증 기능 및 속성 검사 강화 적용
🔧 검증 코드
출력된 버전 번호가 1.3.0 미만이면 취약한 상태이며, 1.3.0 이상이면 안전합니다.
python3 -c "import tooluniverse; print(tooluniverse.__version__)" 2>/dev/null || echo 'Package not found'