事件经过
MCP服务器的HTTP模式处理未认证的POST /mcp请求,没有请求级错误边界:一个格式错误的JSON体抛出SyntaxError,杀死Node.js进程。伴随缺陷将每个请求体块累积在Buffer[]中且无累积限制,另一个缺陷对所有客户端复用同一个有状态的StreamableHTTPServerTransport。
影响分析
MCP服务器被LLM代理利用,可能暴露于网络。单个请求的未认证远程DoS使依赖它的任何代理无法使用MCP服务,传输复用问题可能泄漏客户端之间的状态/会话上下文。
攻击途径
未认证远程客户端发送单个格式错误的JSON POST /mcp体,引发未处理的SyntaxError,终止Node.js进程,使MCP服务离线,直到外部监督程序重启。相关缺陷允许无限制的体累积和通过共享传输的跨客户端状态泄漏。
受影响系统
@tsparticles/mcp-server < 4.3.1(崩溃/体累积);< 4.3.2(传输复用)
缓解措施
升级@tsparticles/mcp-server至>=4.3.1(且==4.3.2用于传输复用);参见修复提交和GitHub公告。