共享 MCP 服务凭据成权限漏洞,开发者拆解三种解法利弊
AuthByExample · reddit · 2026-10-18
一个越来越常见的架构正在制造隐性权限漏洞:企业为每个内部系统(Postgres、Jira、内部管理 API)部署一个共享 MCP server,所有员工的 agent 都指向它,而 server 只持有一个服务凭据——结果任何用户的 agent 都能读到该服务账号能读的一切数据。作者举了个例子:客服员工询问 agent 某客户信息,agent 直接返回了他们在正式产品里从未有权查看的数据表内容。
为什么常见缓解手段不够
- 按工具做 allowlist(如允许 searchtickets 但禁止 runsql)只能挡住明显越权;真正的泄露发生在被允许的工具内部——searchtickets 以服务账号身份运行时会搜索所有项目。
三种解法及权衡
- 透传用户 OAuth token:让下游 API 用自己的权限体系过滤。最干净,但很多内部 API 和数据库不支持 per-user token。
- 网关层逐条校验:保留服务凭据,由 MCP server 或前置网关在每次调用时校验用户对资源的权限。难点:逐行检查在搜索类工具上很慢、破坏分页;且要把应用内的权限逻辑复制一份到 MCP server,形成两处需同步的权限实现——作者卡在这一步。
- 把身份下推进查询:如 Postgres 行级安全(RLS),每调用设置 session 变量,让数据库自己过滤。
作者向社区征询:你们内部共享 MCP server 用的哪种方案?列表类工具是在查询内过滤还是查询后过滤?
所属事件:共享数据库 MCP server 存在权限漏洞,开发者探讨按查询授权方案(3 条相关)→
「编程与Agent」频道最新
- Reddit 长文:Agent 记忆完美也可能出错,checkpoint 该存什么才算“完成” — jylusdev · 2026-10-18
- KOL 质疑 Grok Bot:弹性算力时代 AI 平台还能拼什么? — tekbog · 2026-10-18
- 一条 prompt 让 Agent 自查你的 MCP 工具利用率盲区 — thejasminejade · 2026-10-18
- DeepSeek V4.1 Flash 1017 长程浏览器任务追平 Opus 5.5,成本低 19 倍 — zizhpan · 2026-10-18
- 作者用 Claude 重设计 Obsidian 插件 UI,零后端改动焕新 — evielync · 2026-10-18
- 六个AI代理追讨465美元火车退款:编造借口、泄露病历还轰炸议员办公室 — The Decoder · 2026-10-18