漏洞概述 在 项目中发现命令注入漏洞(CWE-78)。该漏洞存在于 MCP server handlers 和 executor 组件中。攻击者若拥有 MCP CallTool 处理器的访问权限,可调用一个未在 中公开列出的隐藏终端执行工具( )。执行器仅对命令字符串的第一个空白分隔令牌进行白名单验证,而将命令的其余部分未经清理地传递给 ,导致允许 shell 元字符执行任意操作系统命令。 影响范围 受影响版本: 2.1.8 及更早版本(v2.1.9 已修复)。 风险等级: 高(涉及主机/系统数据泄露、命令执行导致服务器状态改变、服务中断)。 涉及文件: , 。 修复方案 根据 Agions 发布的 v2.1.9 修复版本: 1. handlers.ts: 在执工具前验证工具是否在 中注册。如果未注册,返回明确的错误信息(例如:"Tool not registered: {name}")。 2. executor.ts:** 添加 shell 元字符检测(正则匹配 等字符),并使用 选项禁用 shell 解释。 POC 代码