Cursor 没有将 API 密钥存储在受保护的存储空间中,这意味着任何扩展程序都可以访问它们。Cursor 明知存在此漏洞,却并未修复。
执行摘要
LayerX 安全研究人员发现,任何对流行的 AI 开发工具 Cursor 的扩展程序都可以访问开发者的 API 密钥和会话令牌,从而导致凭证完全泄露,而这完全不需要用户交互或活动。
LayerX发现,由于Cursor没有将密钥存储在受保护的存储中, 任何 Cursor 扩展程序可以执行此访问操作。因此,每个 Cursor 用户都容易受到恶意 Cursor 扩展程序窃取 API 密钥的风险。
利用此漏洞可能导致会话令牌和 API 密钥泄露、未经授权访问 Cursor 后端服务,以及通过冒充用户窃取数据。
LayerX已将此漏洞报告给Cursor。Cursor回复称他们已意识到该问题,但用户有责任定义其信任边界。截至目前,Cursor尚未修复此问题。
Cursor API 密钥存储在开放的本地数据库中。
Cursor 是一款流行的 AI 驱动开发环境,它存在一个高危访问控制漏洞(CVSS 8.2允许任何已安装的扩展程序访问本地存储的敏感凭据。
与将 API 密钥和会话令牌等机密信息存储在受保护的存储(例如操作系统钥匙串)中的标准安全实践不同,Cursor 将这些凭据存储在本地 SQLite 数据库中:
`~/Library/Application Support/Cursor/User/globalStorage/state.vscdb`
关键在于,Cursor 没有强制执行扩展程序与此数据库之间的访问控制边界。因此,任何扩展程序——无论其声明的权限如何——都可以直接读取数据库并提取敏感数据。
这便形成了一种强大的攻击手段:恶意或被入侵的 Cursor 扩展程序可以悄无声息地窃取 API 密钥和会话令牌,从而实现账户接管、数据访问和金融滥用。
冲击
此漏洞无需用户交互(只需安装一个扩展程序)即可完全窃取凭据,导致:
- 会话令牌和 API 密钥的泄露
- 未经授权访问 Cursor 后端服务
- 第三方集成(例如 OpenAI、Anthropic、Google)的妥协
- 用户冒充和数据访问
下游风险(例如:OpenAI API密钥被盗)
如果攻击者获取了受害者的 OpenAI API 密钥,他们可以:
- 向受害者收取费用的 API 调用 → 经济损失
- 访问提示、自动补全和元数据 → 数据泄露
- 滥用 API 进行进一步攻击或自动化
- 可能从先前的互动中推断出敏感信息。
由于这些密钥通常授予广泛的访问权限,其影响不仅限于 Cursor 本身,还扩展到用户更广泛的 AI 和开发生态系统。
技术概述
让我们从攻击者的角度来分析一个真实的攻击场景。
图 1. 开发流程
步骤 1:准备恶意扩展程序
攻击者创建了一个看似无害的 Cursor 扩展程序——可能是生产力工具、主题或辅助实用程序。它不会请求任何可疑权限,看起来安装起来也很安全。
从用户的角度来看,一切看起来都很正常。
步骤 2:用户安装扩展程序
开发者从应用商店或 GitHub 代码库安装扩展程序。
有:
- 没有警告
- 没有与凭据访问相关的权限提示
- 无风险迹象
此时,攻击者已在 Cursor 扩展环境中执行代码。
步骤 3:访问敏感存储
Cursor 将敏感数据存储在上述本地 SQLite 数据库中。该数据库包含:
- 会话令牌
- API密钥(例如,OpenAI)
- 其他身份验证凭证
由于缺乏访问控制措施,该扩展程序可以直接打开并查询此数据库,无需任何特殊权限。
步骤 4:凭证提取
该扩展程序解析数据库并提取:
- API密钥
- 会话令牌
- 可能是缓存的配置或元数据
图 2. 来自 PoC 扩展的数据库查询示例
由于数据以明文形式存储(或保护不足),因此提取起来非常简单。
第五步:悄悄撤离
该扩展程序会将窃取的凭据发送到攻击者控制的服务器,只需简单的 fetch 操作即可完成。整个过程悄无声息:
- 无需用户交互
- 界面无明显变化
- 无警报
步骤六:后渗透
攻击者现在持有有效凭证。
为什么这是高危事件
这种漏洞尤其危险,因为:
- 无需权限
- 安装后无需用户交互
- 攻击复杂度低
- 高度保密性影响
为了突出这一点有多容易被利用,我们创建了一个 PoC扩展 以及一段演示视频:
信息披露时间表:
- 报告日期: 02/01/2026
- 供应商回应: 2026年2月5日上午10:05(UTC)
虽然报告显示扩展程序可以访问包含凭据的本地 SQLite 数据库,但这种访问权限仅限于用户已安装并授予扩展程序权限的本地计算机。这与其他任何本地应用程序的信任边界相同——具有本地文件系统访问权限的恶意扩展程序有可能访问各种应用程序数据存储。
- 修复状态:未修复。2026年4月28日,星期二
建议的补救措施
为了妥善解决这个问题,Cursor 必须:
- 严格隔离扩展程序和敏感凭证存储。
- 敏感凭证应通过安全加密的存储层或系统级密钥链(例如 macOS 密钥链、Windows 凭证管理器)进行处理。
