내가 쓰는 MCP 서버가 이 결함의 영향을 받는지 어떻게 판단하나요?
내가 쓰는 MCP 서버가 이 결함의 영향을 받는지 어떻게 판단하나요?
답변 1개
- 채택된 답변
핵심은 사용자나 외부에서 들어온 설정값이 셸을 거쳐 명령으로 실행되는 경로가 있는지다. MCP 서버 구동 과정에서 설정값을 그대로 셸 문자열에 끼워 넣어 프로세스를 띄우는 코드가 있다면 의심해야 한다. 특히 프로세스 기동이 실패하는 상황에서도 명령이 실행될 수 있으므로, 실패 경로까지 함께 봐야 한다.
점검은 SDK가 외부 명령을 어떻게 호출하는지부터 따라가는 방식이 좋다. 셸을 경유하지 않고 인자를 배열로 전달하는 방식인지, 아니면 문자열을 셸에 그대로 넘기는지 확인한다. 신뢰할 수 없는 입력이 이 경로에 닿는다면 직접 정화나 이스케이프를 적용해야 한다.
Anthropic이 입력 정화를 개발자 책임으로 규정한 만큼, SDK 업데이트만 기다리기보다 본인 코드에서 방어선을 두는 편이 안전하다.