漏洞概述 标题: MCP enabled_tools Allowlist Bypass Registers Resource and Prompt Capabilities Despite Deny-All Policy 描述: nanobot 通过 暴露 MCP 服务器能力给代理。配置旨在限制或拒绝所有 MCP 能力, 仅对常规 MCP 工具强制执行。MCP 资源和提示从同一服务器注册并仍然可执行。实际上,操作员可以配置一个拒绝策略如 ,但仍无意中暴露资源后端数据访问或提示后端特权工作流给后续代理轮次。 影响范围 生态系统: pip 包名: nanobot 受影响版本: <= 0.2.1 修复版本: 未提供 严重性: 中等 CVSS 向量字符串: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N 弱点: CWE-284: Improper Access Control 修复方案 修复版本: 未提供 修复措施: 需要修复 MCP 能力注册路径中的问题,确保 策略不仅应用于 输出,还应用于资源注册和提示注册。 POC 代码 日志证据 重现步骤 1. 从 下载演示 MCP 服务器。 2. 从 下载验证测试。 3. 从 下载控制测试。 4. 从仓库根目录运行验证测试: 5. 观察到拒绝策略抑制了 ,但注册表仍包含 和 。 6. 运行控制测试: 7. 观察到常规 MCP 工具在相同的拒绝策略下保持被阻止,确认缺陷特定于资源/提示能力类。 影响 这是一个访问控制/策略执行缺陷在 MCP 能力注册中。任何依赖 来抑制敏感 MCP 服务器能力的部署可能会意外打开资源和提示能力类。如果 MCP 服务器通过资源暴露内部数据或通过提示暴露特权工作流,这些能力在操作员明确尝试拒绝它们后仍可能对后续模型驱动的代理轮次可用。影响取决于 MCP 服务器暴露的内容,但可能包括未经授权访问内部资源、执行特权提示工作流以及绕过操作员预期的每服务器能力限制。