기술 설명
OX Security 연구원들이 Model Context Protocol(MCP)의 STDIO 전송(AI 에이전트를 로컬 도구에 연결하는 기본 방법)이 받은 모든 운영 체제 명령을 살균 처리 없이 실행한다는 것을 발견했습니다. 구성과 명령 사이에 실행 경계가 존재하지 않습니다. 악의적인 명령은 이미 실행된 후에야 오류를 반환합니다. OX Security는 생태계를 스캔하여 공개 IP에서 STDIO 전송이 활성화된 7,000개 서버를 찾았고, 총 200,000개의 취약한 인스턴스로 추정했습니다. 연구팀은 유료 고객을 보유한 6개의 실시간 프로덕션 플랫폼에서 자의적인 명령 실행을 확인했으며, LiteLLM, LangFlow, Flowise, Windsurf, Langchain-Chatchat, Bisheng, DocsGPT, GPT Researcher, Agent Zero, LettaAI 및 기타에 걸쳐 높음 또는 심각으로 평가된 10개 이상의 CVE를 작성했습니다.
공격 경로
4가지 악용 계열이 확인되었습니다: (1) AI 프레임워크 웹 인터페이스를 통한 인증되지 않은 명령 삽입(LangFlow 및 LiteLLM에 대해 시연됨); (2) OX가 Flowise 및 Upsonic과 같은 도구에서 인수 삽입(npx -c)을 통해 명령 허용 목록을 우회한 강화 우회; (3) 악의적인 HTML이 로컬 MCP 구성 파일을 수정하는 AI 코딩 IDE의 제로클릭 프롬프트 삽입(Windsurf(CVE-2026-30615)는 사용자 상호 작용이 필요 없었고, Cursor, Claude Code, Gemini-CLI는 사용자 승인이 필요하지만 UI에서 실행 결과를 표시하지 않음); (4) MCP 레지스트리를 통한 악의적인 패키지 배포(OX가 11개 레지스트리에 무해한 개념 증명을 제출했으며 9개가 보안 검토 없이 수락함). 이러한 불안정성은 코딩 버그가 아니라 Anthropic의 MCP 명세서의 설계 기본값으로, 모든 공식 언어 SDK(Python, TypeScript, Java, Rust)에 전파되었습니다.
영향받는 시스템
기본 STDIO 전송을 사용하는 모든 MCP 배포. 확인된 취약 제품에는 다음이 포함됩니다: LiteLLM(패치됨), LangFlow(부분 패치됨), Flowise(강화 우회됨), Windsurf(CVE-2026-30615 패치됨), Langchain-Chatchat, Bisheng, DocsGPT, GPT Researcher, Agent Zero, LettaAI, Upsonic, Cursor, Claude Code, Gemini-CLI, NextChat(ChatGPTNextWeb, CVE-2026-7644) 및 최소 7개의 추가 단독 저자 GitHub MCP 서버. Anthropic은 이 동작이 의도대로 설계되었으며 프로토콜 수정을 거부했으며, STDIO의 실행 모델을 입력 살균 처리를 개발자의 책임으로 특징지으며 안전한 기본값으로 특성화했습니다. OX Security는 200,000명의 개발자가 입력을 올바르게 살균할 것으로 예상하는 것이 시스템적 문제라고 반박합니다. 중요한 격차: 모든 공급업체 패치는 자신의 제품을 수정하지만, MCP 프로토콜의 STDIO 동작을 변경하는 패치는 없습니다. 오늘 LiteLLM에 패치를 적용하고 내일 새 MCP STDIO 서버를 구성하는 보안 책임자는 동일한 불안전한 기본값을 상속합니다.
완화 방안
즉시: MCP STDIO를 커넥터가 아닌 특권 실행 표면으로 취급하십시오. 거부 우선 정책을 적용하고, 특정 명령을 허용 목록에 추가하고, 샌드박스 제어를 배포하고, 다운스트림 입력 검증이 규모에서 유지될 것으로 가정하지 마십시오. IDE 배포(Cursor, Claude Code, Gemini-CLI, Windsurf)의 경우: 공급업체가 프롬프트 삽입-구성 수정 체인에 패치를 적용했는지 확인하십시오. 사용자 승인 전에 UI에서 구성 변경이 실행 결과를 표시하는지 확인하십시오. AI 프레임워크 배포(LiteLLM, LangFlow, Flowise 등)의 경우: 공급업체 패치를 즉시 적용하되, 패치가 프로토콜 설계가 아닌 제품 특정 버그를 수정한다는 것을 인식하십시오. MCP 배포 감사를 수행하십시오: 환경의 모든 STDIO 전송을 식별하고, 어떤 OS 수준 액세스 권한이 있는지 매핑하고, 최소 권한 및 네트워크 분할을 적용하십시오. 장기적: 가능한 경우 SSE(서버 발송 이벤트) 전송으로 마이그레이션하는 것을 고려하십시오. 다만 이는 보편적으로 지원되지는 않습니다. 개발자가 커뮤니티 서버를 설치하도록 허용하는 경우 MCP 레지스트리 제출을 모니터링하십시오. 11개 중 9개 레지스트리가 보안 검토 없이 개념 증명을 수락했습니다.