漏洞总结:docker-mcp-server 命令注入漏洞 1. 漏洞概述 漏洞类型:命令注入 (Command Injection / CWE-78)。 受影响产品: (Vendor: suvarchal)。 漏洞位置: 文件中的多个 MCP 工具处理器(包括 , , 等)。 详细描述: 该漏洞存在于 的 组件中。多个 MCP 工具处理器(如 , , )使用未 sanitization(未清理)的攻击者控制输入(例如容器名称或镜像标签)来构建 shell 命令字符串。这些命令随后通过 执行。 攻击者若拥有网络访问 MCP/HTTP 接口的权限,可提供包含 shell 元字符的恶意输入。这会导致任意 OS 命令执行,进而引发数据泄露、完整性丧失和服务中断。 2. 影响范围 确认受影响版本:0.1.0(在本地数据集中声明)。 疑似受影响范围:包含上述相同请求到接收端(request-to-sink)流程的版本。 修复版本:报告发布时不可用。 3. 修复方案 消除直接数据流:消除从请求到接收端(sink)的直接数据流。 引入模式验证:在 MCP 或 HTTP 参数进入应用程序的边界处引入模式验证(schema validation)。 添加回归测试:添加回归测试,证明攻击者控制的值无法到达进程执行接收端(process execution sinks)或任意出站请求接收端。 发布安全公告:在补丁发布后发布带有明确修复版本的安全公告。 具体建议: 移除请求处理代码中的 shell 风格自由形式执行。 使用固定命令白名单和严格参数模式替换直接执行。 优先使用 或 配合数组参数(无 shell: true 且无插值命令字符串)。 添加认证、授权、审计日志,并对敏感 MCP/HTTP 处理器进行速率限制。 4. POC/利用代码 根据页面 "9) Proof of Concept / Reproduction Guidance" 部分提取: (注:分析指出 会将用户提供的字段(如 )未加引号地拼接进 shell 命令,导致元字符被解释从而触发注入。)