事件经过
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 版本(一旦可用);作为临时缓解措施在传输层应用消息大小限制。