🇰🇷 한글 설명
MCP Python SDK의 상태 유지형 Streamable HTTP 서버에서 세션 항목이 만료되거나 제한 없이 계속 유지되는 취약점이 발견되었습니다. 공격자가 지속적으로 요청을 보내면 서버의 메모리가 무한히 증가하여 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
서버가 사용자와의 연결 기록을 제대로 지우지 않고 계속 쌓아두는 문제입니다. 나쁜 의도를 가진 사람이 가짜 연결을 계속 만들면 서버의 메모리가 가득 차서 컴퓨터가 멈출 수 있습니다.
🇺🇸 원문 (English)
The MCP Python SDK, called mcp on PyPI, is a Python implementation of the Model Context Protocol (MCP). From 1.8.0 until 1.30.0 and 2.2.0, stateful Streamable HTTP servers, including FastMCP, MCPServer, Server.streamable_http_app(), and StreamableHTTPSessionManager, retain session entries without an idle expiration or aggregate session-count limit. DELETE, refused opening requests, and completed sessions do not reliably discard their entries, and each entry can retain parsed initialize parameters. A client that can reach the endpoint can therefore create ordinary short requests that grow server memory without bound until restart. Stateless HTTP, stdio, and SSE transports are not affected. This issue is fixed in versions 1.30.0 and 2.2.0.
📍 영향받는 시스템
mcp Python SDK (PyPI) 버전 1.8.0 ~ 1.30.0 및 2.2.0 (FastMCP, MCPServer 등 포함)
⚔️ 공격 벡터
상태 유지형 HTTP 엔드포인트에 지속적으로 짧은 요청을 보내 세션 정보를 누적시킴
🛡️ 대응 방법
mcp SDK를 버전 1.30.0 또는 2.2.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.30.0 미만이거나 2.2.0 미만인 경우 취약한 버전입니다.
pip show mcp | grep Version