漏洞总结:gpt-researcher 未授权远程代码执行 (RCE) 漏洞概述 漏洞名称: Unauthenticated Remote Code Execution via MCP Command Injection in gpt-researcher #1694 受影响版本: GPT Researcher v3.4.3 及更早版本 漏洞类型: 未授权远程代码执行 (RCE) / MCP 命令注入 CVSS 评分: 10.0 (Critical) 描述: 攻击者可以通过 WebSocket 端点发送包含 参数的 MCP 消息。该参数包含任意命令和 数组。这些值在通过应用程序时未经过任何验证或清理,最终到达 ,从而在服务器上启动攻击者指定的进程。无需认证,攻击者可完全控制执行的命令、参数及环境变量。 影响范围 1. 完全远程代码执行: 攻击者可以在服务器上执行任意命令,包括读写文件、安装恶意软件、横向移动到其他系统以及探索数据。 2. 无需认证: WebSocket 端点没有零信任机制,任何网络用户均可连接并发送攻击载荷。 3. 环境变量控制: 攻击者控制 参数, enabling 进一步攻击(如 LD_PRELOAD 注入、PATH 劫持或凭据注入)。 4. 跨站可利用: 结合跨站 WebSocket 劫持漏洞(无 Origin 验证),可从同一网络中的恶意网页触发此 RCE。 POC 代码 (Proof of Concept) PoC 1: Create a File on the Server (Minimal PoC) PoC 2: Execute System Commands and Exfiltrate Output PoC 3: Reverse Shell (Conceptual) 修复方案 建议修复:允许列表 MCP 命令 (Allowlist MCP Commands) 额外建议 (Additional Recommendations) 1. Require Authentication: 添加认证以防止匿名访问。 2. Disable MCP by Default: MCP 应默认禁用,并需要明确的服务器端配置,不接受来自客户端的任意配置。 3. Sandbox MCP Processes: 在沙箱环境(如 Docker 容器、seccomp、AppArmor)中运行 MCP 服务器进程。 4. Remove env Control**: 不允许客户端为 MCP 进程指定环境变量。