首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GitLab Duo AI编程助手曝出提示注入漏洞 凸显AI助手的潜在风险

漏洞发现:恶意提示可操控AI行为

研究人员发现,通过将隐藏指令植入代码注释、提交信息和合并请求描述中,可以诱骗GitLab的AI编程助手Duo向用户显示恶意内容并泄露私有源代码。这款AI助手会解析来自公共代码库的注释、源代码、合并请求描述和提交信息中的恶意AI提示,导致其向用户推荐恶意代码、分享恶意链接,并在响应中注入恶意HTML代码,从而悄无声息地泄露私有项目代码。

应用安全公司Legit Security的研究人员在报告中指出:"GitLab已经修补了HTML注入漏洞,这很好,但更重要的教训很明确:AI工具现在已成为应用程序攻击面的一部分。如果它们从页面读取内容,这些输入就需要像其他用户提供的数据一样对待——不可信、混乱且潜在危险。"

提示注入(Prompt injection)是一种针对大语言模型(LLM)的攻击技术,用于操控其向用户输出的内容。虽然这不是新型攻击手段,但随着企业开发能够解析用户生成数据并基于内容自主采取行动的AI代理,其重要性将日益凸显。

开发助手反成安全威胁

GitLab Duo是为流行DevOps平台GitLab提供的AI开发生命周期助手。该工具可通过聊天界面提供代码建议、排查代码问题、解释代码漏洞并提出修复方案。在日常运行中,Duo会分析GitLab项目中的内容,包括源代码、注释、描述、已提交问题以及合并请求(代码贡献)等。

Legit Security的研究人员尝试在项目中可能由外部用户控制的各个区域植入指令,测试GitLab Duo在分析内容时是否会将其解释为系统提示。测试取得了成功——研究人员写道:"Duo会分析页面的全部上下文,包括注释、描述和源代码,这使得它容易受到隐藏在该上下文中任何位置的注入指令影响。"

在测试前,研究人员还探索了多种隐藏提示的方法,包括Unicode编码走私、base16编码有效载荷,以及使用KaTeX数学公式渲染引擎将提示以白色文本形式注入(在白色背景下不可见)。

攻击场景:从代码建议到凭证泄露

研究人员成功演示了多种攻击场景:

在合并请求描述中植入隐藏提示,诱使Duo在代码变更建议中注入恶意JavaScript包

通过特定提示强制Duo在响应中注入指向伪造登录页面的网页链接

利用隐藏提示欺骗AI助手无条件支持恶意合并请求,误导审查者认为这是合法提交

更严重的是,研究人员发现Duo基于Markdown语言的HTML聊天界面存在漏洞。由于响应是从后端LLM逐步流式传输呈现的,攻击者可注入HTML标签(如)使其被浏览器解析执行。这为窃取私有代码创造了条件——攻击者若获知私有项目URL,就能利用用户权限读取、编码敏感源代码,并将其外泄至控制服务器。若还能定位存储API令牌等凭证的文件位置,危害将更为严重。

修复进展与遗留风险

GitLab已通过阻止Duo渲染指向非gitlab.com域名的或等风险标签,修复了HTML注入问题。但其他不涉及HTML渲染的提示注入场景仍未修补,因为GitLab认为这些情况不会直接导致未授权访问或代码执行,不构成安全问题。

研究人员强调:"这一安全漏洞表明,当GitLab Duo等AI助手盲目信任页面内容时,可能带来巨大风险。通过植入隐藏提示和原始HTML,我们能在用户未点击任何内容的情况下,使Duo泄露私有源代码。"

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OMMJyyFv0PNue0AS8aOdR22g0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券