Cursor+MCP,数据库出问题是啥原因?这架构设计,真的靠谱吗?
在AI工具快速普及的当下,MCP协议的安全隐患正引发业界高度关注。近日,安全研究团队通过实测发现,当Cursor搭配MCP使用时,攻击者仅需一条看似无害的用户信息,就能在不被察觉的情况下将整个SQL数据库泄露出去。这种新型攻击方式的出现,标志着AI应用中的安全挑战正从边缘问题演变为核心威胁。
这种被称为"致命三连"的攻击模式,将提示注入、敏感数据访问和信息回传三种要素集中于MCP协议中。随着MCP被越来越多的AI代理接入,这类看似小众的配置问题,正在演变为影响整个AI生态系统的安全风险。安全公司General Analysis的实测案例显示,攻击者只需在客服工单中插入一段精心设计的留言,就能让Cursor的MCP代理自动将integration_tokens私密表内容复制并展示在公开工单页面。
这种攻击方式的隐蔽性令人担忧。在测试中,攻击者仅用30秒就完成了整个数据泄露过程,且未触发任何越权警报。开发者在Cursor界面上执行日常操作时,完全意识不到自己正在被劫持。通过五步流程,攻击者成功将包含OAuth访问令牌、刷新令牌和过期时间等敏感信息的完整记录暴露在公共空间。
这种攻击的特殊性在于,它无需传统意义上的提权操作。攻击者通过提示注入技术,直接撞开了Cursor MCP的自动化通道。只要将生产数据库暴露给MCP,任何团队都可能遭遇这种威胁。Supabase、Postgres、MySQL等数据库系统都可能成为攻击目标,这使得MCP协议的安全隐患具有广泛影响。
深入分析发现,MCP协议的设计理念本身就存在安全隐患。网友评论指出,MCP中的"S"代表"安全",但实际设计中却缺乏安全机制。这种协议本质上是让LLM使用外部工具的能力,例如获取天气信息或股票数据。这些工具API并非为人类用户设计,而是专门供LLM使用的。
早期MCP规范要求每个服务都充当OAuth服务器,但安全专家Daniel Garnier-Moiroux指出,这种设计在实际操作中并不合理。随着企业接入需求增加,Anthropic调整规范,将MCP服务定位为"资源服务器",而非"授权服务器"。这种改变导致OAuth和MCP协议出现"阻抗失配",即两个为不同场景设计的规范被强行融合。
OAuth诞生于人类用户授权第三方访问资源的场景,而MCP则是为AI代理设计的接口协议。两者目标完全不同,OAuth有四个核心实体:授权服务器、资源拥有者、资源服务器和客户端。而MCP的规范并未定义这些实体,也没有建立统一的授权机制。这种设计缺陷使得在OAuth框架下,MCP服务无法有效识别和控制不同角色的权限。
随着MCP运行环境从本地桌面模式向云端网页系统转变,授权机制面临新挑战。Daniel指出,客户端不再局限于本地应用,而是通过浏览器访问的网页系统。这种变化要求重新审视授权的真正含义,特别是在工具调用前是否需要进行授权检查。目前仍在探索最佳实践方案。
这种协议融合带来的问题,源于两个完全不同领域的规范强行结合。OAuth和MCP各自起源于截然不同的设计目标,如今却共同构建AI应用的基础。虽然Anthropic和微软等专家正在持续优化规范,但目前仍处于需要大量反馈和调试的阶段。这种"阻抗失配"现象,正是MCP协议安全风险的根源所在。