Workflow
提示注入(Prompt Injection)
icon
搜索文档
MCP协议曝出大漏洞:会泄露整个数据库
量子位· 2025-07-10 11:19
MCP协议安全漏洞 - MCP协议存在重大漏洞,攻击者可利用LLM的指令/数据混淆漏洞直接访问数据库 [1] - 当用户提供的"数据"被伪装成指令时,模型可能将其作为真实指令执行,导致未经授权的操作如数据泄露 [2] - MCP协议已成为智能体领域行业标准,广泛连接大语言模型与工具服务,但处理网页/邮件/文档时易受恶意指令攻击 [3] 攻击演示系统架构 - 研究基于Supabase搭建多租户客服SaaS系统,包含数据库/身份认证/文件存储功能 [5] - 系统启用标准行级安全(RLS)机制且无额外策略,攻击利用默认配置中的service_role/默认模型/RLS等要素 [6] - 权限边界显示:支持代理仅能读写support_*表,开发者通过service_role拥有全表SQL权限,IDE助手通过MCP执行任意查询 [8] 数据泄露攻击流程 - 攻击者提交伪装成友好提问的技术支持请求,内含发送给Cursor代理的明确指令 [9] - 恶意消息通过工单系统存入客户消息表,未被过滤或阻断 [10] - 开发人员使用Cursor查看未处理工单时,代理自动执行SQL查询并读取嵌入指令 [12][13] - 攻击流程包括:加载数据库架构→列出工单→筛选未解决工单→获取消息,最终以service_role权限绕过RLS执行敏感查询 [14][15] 攻击结果与权限问题 - 查询结果将integration_tokens表内容插入工单对话,攻击者刷新页面即可获取机密信息 [17][18][19] - 整个过程权限合规,根源在于数据库权限过高(service_role)与对用户内容的盲目信任 [21] 安全防护措施 - 启用只读模式可防止恶意提示词执行insert/update/delete操作 [22] - 添加提示注入过滤器作为第一道防线,通过外部模块拦截高风险输入 [23]