무슨 일이 있었나
MCP Kotlin SDK의 공유 ReadBuffer 구현은 수신한 바이트 청크를 추가할 때 누적된 버퍼 크기에 대한 제한이 없어, 연결된 MCP 피어가 트리거할 수 있는 메모리 소진 서비스 거부 조건을 지원합니다.
왜 중요한가
MCP 채택이 언어 전반에 걸쳐 증가함에 따라, 공식 SDK 수준의 리소스 소진 버그는 해당 SDK에 구축된 모든 애플리케이션에 영향을 미칠 수 있습니다. 이는 빠르게 확산하는 에이전트 툴링 프로토콜의 공식 Kotlin 구현에서 좁지만 정확하게 범위가 정해진 결함입니다.
공격 경로
ReadBuffer.append는 수신한 모든 바이트 청크를 총 버퍼 크기에 대한 제한 없이 기록하여, 악의적이거나 동작 불량 MCP 피어가 무제한 스트림을 전송하고 수신 측의 메모리를 소진하여 서비스 거부를 야기할 수 있습니다.
영향받는 시스템
MCP Kotlin SDK (modelcontextprotocol/kotlin-sdk), 버전 0.7.0부터 0.12.0까지
완화 방안
사용 가능해지면 패치된 MCP Kotlin SDK 릴리스로 업그레이드하십시오. 임시 완화 조치로 전송 계층에서 메시지 크기 제한을 적용하십시오.