黑客利用恶意MCP服务器向Cursor内置浏览器注入恶意代码
安全研究人员在AI驱动的代码编辑器Cursor中发现了一个关键漏洞,该漏洞允许攻击者通过恶意的模型上下文协议服务器注入恶意代码。
与VS Code不同,Cursor对其运行时组件缺乏完整性检查,这使其容易在MCP服务器注册过程中被篡改。
攻击通过注册一个本地MCP服务器来实施,该服务器完全绕过了Cursor内置的安全控制。当毫无戒备的开发人员启用了恶意的MCP服务器并重启Cursor后,浏览器就会被入侵。攻击者可以注入任意JavaScript代码,从而劫持内部浏览器,将合法的登录页面替换成用于收集凭证的伪造页面,并将窃取的凭证发送到远程服务器。
攻击如何运作
该漏洞源于Cursor在运行时未能验证其特定功能的完整性。研究人员通过在MCP服务器注册过程中修改未经验证的内部代码,创建了一个概念验证。
这种修改将恶意代码注入到Cursor的浏览器中,而无需特殊权限或重新计算校验和。
攻击通过将document.body.innerHTML替换为由攻击者控制的HTML来执行,从而有效地重写整个页面主体并擦除之前的DOM状态。该技术完全绕过了UI级别的安全检查。一旦激活,Cursor打开的每个浏览器标签页都会执行注入的有效载荷,从而创建一个持续的攻击面。
该过程需要三个步骤:启用MCP服务器、重启Cursor以应用更改,以及在嵌入式浏览器中运行恶意的JavaScript。这代表了一种双层eval攻击,为攻击者提供了广泛的能力。
此漏洞揭示了一个更广泛的威胁态势,即编码代理每天都在引入不断扩大的攻击面。MCP服务器需要广泛的权限才能运行,这意味着被入侵的服务器可以自我修改、提升权限并在用户不知情的情况下获得新功能。攻击者可以执行被入侵用户所能执行的任何操作,而现有的风险缓解控制措施却微乎其微。
与AI代理相关的新兴供应链风险是巨大的。然而,组织对其部署和使用情况的可视性却非常有限。MCP服务器、扩展程序,甚至简单的提示词,都可以在用户环境和企业网络中执行代码而未被察觉。
给开发者的建议
开发人员在使用任何MCP服务器或扩展程序之前都应仔细检查。在安装前,请验证项目的GitHub仓库并彻底审查源代码。切勿不加质疑地启用功能,尤其是MCP功能,并避免使用绕过用户监督的自动运行模式。
此外,开发人员应在嵌入式浏览器中执行操作之前,手动审查由AI代理生成的代码。对开发工具的过度信任所造成的后果可能超出单台机器的范围,危及整个企业网络。
尽管Cursor在发布前已收到通知,但这一发现再次表明,开发者的机器已成为新的网络防御边界。组织必须实施全面的供应链安全措施,包括用于安全引入的信誉系统以及态势管理能力,以防范针对AI驱动开发环境的不断演变的威胁。