Yii2-MCP-Server 命令注入漏洞总结 漏洞概述 在 版本 1.0.2 中发现了一个命令注入漏洞(CWE-78)。该漏洞存在于 和 命令辅助工具中。服务器通过拼接用户提供的参数(如 和 )直接构建 shell 命令字符串,并使用 执行,未对特殊字符进行转义或过滤。攻击者可通过网络访问 MCP 接口注入 shell 元字符(如 、 ),以服务器进程权限执行任意系统命令。 影响范围 受影响版本:1.0.2 受影响组件: 、 安全影响: 机密性:高(可读取环境变量、应用密钥、数据库凭证等)。 完整性:高(可修改文件、应用状态)。 可用性:高(可终止进程、删除数据、耗尽资源)。 CVSS v3.1 评分:8.8 (High) 修复方案 1. 避免拼接字符串:不要使用拼接字符串的方式构建 shell 命令。 2. 使用安全执行方式:将 或 替换为 或 ,并使用参数数组传递参数(例如 )。 3. 输入验证:验证 和 是否符合预期的 Yii 命令名称和选项格式。 4. 拒绝非法字符:拒绝包含 shell 元字符和不受支持参数的 MCP 请求。 5. 统一执行模式:对所有构建 shell 字符串的方法应用相同的安全执行模式。 6. 回归测试:添加针对 、 、 等注入载荷的回归测试。 POC 代码 1. 利用 工具: 2. 利用 工具:**