事件经过
/api/servers/*管理端点对调用者进行身份验证,但未实施基于角色/权限的授权。精心构造的组导入可将调用者的身份提供者组映射到注册表管理员范围,授予对每个已注册网关资产的完全管理控制权——包括通过管理员可访问的路由在读取时解密存储的认证凭据和自定义标头。
影响分析
该注册表是MCP工具资产及其凭据的中央控制点。提升到管理员可读写每个已注册的MCP服务器、修改上游URL(通向SSRF/横向移动的路径),并提取注册表管理的认证密钥——在基于MCP的代理架构中是一个高价值目标。
攻击途径
一个已认证的低权限用户向POST /api/servers/groups/import提交精心构造的组导入请求,将其身份提供者组映射到mcp-registry-admin范围(或授予所有用户一个变更UI权限)。由于管理员状态是按请求派生的,这种提升在下一次请求时生效,无需重新认证。
受影响系统
Amazon mcp-gateway-registry >= 1.0.9 且 <= 1.24.7(在1.25.0中修复)
缓解措施
升级到mcp-gateway-registry 1.25.0+,然后审计mcp_scopes DocumentDB集合中的group_mappings是否指向mcp-registry-admin(或授予所有用户变更操作的ui_permissions)并移除意外授权;审查HTTP日志中来自非管理员账户的POST /api/servers/groups/import请求;轮换注册表管理的凭据;验证已注册的服务器/代理/上游URL。临时措施:在入口处将/api/servers/*变更路由限制为可信管理员身份。