MCP TypeScript SDK 单个 HTTP 请求即可耗尽服务器内存,已发布修复版本
MCP TypeScript SDK: One HTTP request within the default size limit could exhaust server memory during validation
AI 导读
GitHub 安全公告披露,@modelcontextprotocol/sdk 1.32.0 之前版本与 @modelcontextprotocol/server 2.3.0 之前版本在验证请求时不对数组元素和对象键数量设限,单个处于默认 4 MiB 大小限制内的 HTTP 请求即可耗尽服务器内存,进程以 JavaScript heap out of memory 中止,且无需凭据,除非请求在到达 SDK 前已做认证。stdio-only 服务器不受影响,风险最高的是输入包含数组或 record 的 McpServer 工具。修复版本新增默认关闭的 McpServer 选项 maxToolInputElements,需手动设为略高于工具最大输入的值,超限调用返回 isError: true;同时建议把 maxRequestBodySize 下调到工具实际需要的大小。
推荐理由
公告给出受影响与修复版本,并说明仅升级不够,还需设置 maxToolInputElements 与请求体大小限制。
阅读原文