무슨 일이 있었나
ContextForge의 MCP 도구 호출을 위한 Python 코드 실행 샌드박스는 런타임 구성 dunder 속성 이름 및 노출된 원본 getattr 빌트인을 통해 탈출할 수 있으므로 샌드박스가 적용하려는 제한된 부분 집합 대신 임의 코드 실행을 허용합니다.
왜 중요한가
MCP Context Forge는 MCP, A2A 및 REST/gRPC API를 위한 중앙집중식 AI 게이트웨이/레지스트리/프록시로 위치하고 있습니다; 코드 실행 도구의 샌드박스 탈출은 운영자가 에이전트를 위한 안전하게 제한된 '일부 Python 실행' 기능이라고 믿는 것을 게이트웨이 자체에 대한 인증되지 않은 원격 코드 실행으로 변환하며 공개 PoC가 이미 사용 가능합니다.
공격 경로
샌드박스는 safe_builtins를 통해 원본 getattr을 노출합니다(중재된 속성 액세스 우회), 코드 검증은 리터럴 위험한 dunder 문자열만 확인하면서 런타임 시 구성할 수 있도록 허용합니다. 인증되지 않은 HTTP/SSE 전송을 통해 도달 가능한 execute_code MCP 도구와 결합하여 공격자는 차단된 이름(예: subprocess/Popen에 도달하기 위해)을 동적으로 재구성하고 서버 프로세스의 권한으로 임의 OS 명령을 실행하는 Python을 제출할 수 있습니다. 작동하는 개념 증명이 발표되었습니다.
영향받는 시스템
IBM/mcp-context-forge python_sandbox_server 하위 프로젝트, 1.0.2/1.0.3 이전 버전
완화 방안
mcp-context-forge / python_sandbox_server를 패치된 릴리스로 업그레이드하세요(참조된 수정 커밋에 따라 1.0.2 이상); execute_code MCP 도구에서 인증을 요구하고 패치 상태와 관계없이 샌드박스 서버의 네트워크 도달 가능성을 제한합니다.