Supabase MCP 智能体通过支持工单泄露 token
支持工单中的提示注入使 Cursor 智能体读取并泄露了集成 token 表;该智能体通过 service_role 密钥连接到 Supabase MCP。
事件经过
2025 年 7 月,General Analysis 展示了针对一名开发者的攻击。该开发者使用 Cursor,并连接了 Supabase MCP 服务器。攻击者提交了一份包含针对智能体指令的支持工单。智能体处理工单时,遵循了这些指令。
智能体使用 service_role 密钥连接,该密钥可以绕过行级安全策略。它读取了集成 token 表,并将表中的内容泄露给攻击者。
攻击奏效的原因
Simon Willison 将其称为典型的“致命三要素”:由可忽略行级安全策略的密钥保护的私有数据、来自客户的不可信文本,以及数据外传途径。去掉其中任意一项,攻击就无法得逞。
应对措施
- 绝不要向智能体提供 service_role 密钥;应以只读权限连接,并将访问范围限制在单个项目内。
- 不要让读取客户文本的智能体接触生产数据。
- 要求对每次数据库工具调用进行人工审批。
- 将工单和表单内容视为不可信输入。