### 关键信息汇总 #### 漏洞概述 - **漏洞类型**: 命令注入漏洞 (CWE-78) - **影响范围**: Tencent/WeKnora 项目的 `internal/mcp/client.go` 文件,版本 < 0.2.5 - **CVE ID**: CVE-2026-22688 - **CVSS 评分**: 10.0 (Critical) #### 漏洞描述 - **问题核心**: 该漏洞允许认证用户将命令注入到 MCP stdio 设置中,导致服务器执行这些注入的命令。 - **根本原因**: - 缺少安全过滤 - 功能性缺陷 (信任边界违反) - 缺乏授权控制 #### 漏洞代码分析 - **API 注册**: `WeKnora/internal/router/router.go` 文件中的 API 路由注册部分。 - **用户输入**: JSON 输入绑定到 `types.MCPService`。 - **污染传播**: 存储到数据库的对象未进行清理。 - **执行流**: `/test` 终端加载并执行服务。 - **最终执行**: 运行脚本后直接使用 stdio 配置中的命令/参数进行子进程执行。 #### 利用方式 (PoC) - 获取身份验证令牌。 - 创建带命令注入的 MCP 服务。 - 调用 `/test` 终端触发漏洞执行。 #### 影响 - 远程代码执行 (RCE) - 信息泄漏 - 权限提升/横向移动 ``` #### 修复建议 ```markdown - 在 `stdio_config.command` 和 `env` 参数中增加严格过滤和验证。 - 实施权限控制,限制指定用户的命令执行。 - 修复依赖于未验证用户输入创建子进程的代码路径。 - 发布修补后的版本并更新到最新的安全版本。