事件经过
2026-10-08通过Erlang CNA为BeamMCP发布了两条低严重性公告(CVE-2026-88257 CVSS 5.3,CVE-2026-104634 CVSS 2.3):模式验证遗漏了边界情况(类型/必填/additionalProperties/enum/数值边界),且服务器会将JSON布尔值/null强制转换为字符串,因此到达主机分派的工具参数可能违反声明的契约和类型假设。
影响分析
MCP工具输入验证是未受信任客户端与主机分派函数之间的信任边界;可被绕过的模式会让客户端以意外值驱动工具——这是MCP主机内部类型混淆/命令注入原语的跳板,尽管当前影响范围仅限一个小众Elixir库且无已知利用。
攻击途径
MCP客户端可以携带违反服务器所声明模式的参数到达工具的分派函数:模式验证未完全强制reject-additional-properties/数字处理,且JSON true/false/null在到达主机分派函数前会被转换为字符串'true'/'false'/'nil'——因此布尔值/数字预期可被意外类型绕过。
受影响系统
ScriptKittyOS beam_mcp(BeamMCP.Schema.validate/2 和 BeamMCP.Server 分派)
缓解措施
待修复发布后更新beam_mcp;将模式验证视为纵深防御,并加固主机工具分派以应对意外参数类型,无论声明的模式如何。