新闻动态

Vanna AI 提示注入漏洞导致远程代码执行 媒体

2025-04-08

Vanna AI库存在远程代码执行漏洞

关键要点

Vanna AI库因提示注入漏洞可能被利用进行远程代码执行。JFrog研究人员与中国科学院信息工程研究所的Tong Liu博士独立发现了这一漏洞。漏洞允许通过用户输入的提示执行恶意代码,特别是在图表生成过程中。Vanna AI提供了安全性建议,以帮助开发者加强实现的安全性。

近期,Vanna AI库被发现存在一个可能导致远程代码执行RCE的提示注入漏洞。JFrog研究人员发现,在这个库的图表生成过程中,攻击者可以通过用户的提示注入恶意载荷,实现远程代码执行。这一漏洞还被中国科学院信息工程研究所的博士生Tong Liu独立发现,他通过Huntr漏洞奖励平台进行了报告。

Vanna AI可以将自然语言提示转换为SQL查询,并使用名为Plotly的Python图形库将查询结果显示为视觉图表。Vanna AI的实现可以通过Jupyter Notebook等程序与数据库连接,并通过Slackbot、Streamlit应用或其他自定义网页应用提供给最终用户。

在JFrog于周四发布的博客中,研究人员详细说明了这一被追踪为CVE20245565的漏洞是如何实现远程代码执行的。

用户的提示首先被发送给LLM,并附带指令,要求LLM根据该提示生成SQL查询。生成的SQL查询然后被发送到数据库,原始提示和查询结果随后都传递给Plotly进行图表创建。

传递给Python Plotly的代码是根据LLM收到的提示动态生成的,随后通过Python的exec方法运行,以生成查询数据的可视化。由于最终执行的Python代码具有动态性,用户可以通过以特定方式构造提示来操控过程,执行自己的恶意代码,从而确保其载荷包含在最终的Plotly脚本中。

Vanna AI 提示注入漏洞导致远程代码执行 媒体

用户提示的一个前提是必须能够生成有效的SQL查询。然而,JFrog研究人员演示了一种概念验证的提示注入,包含一个有效的SQL查询,打印一个简单的字符串以指示LLM将载荷代码附加到Plotly代码的开头。

使用他们的概念验证漏洞,研究人员展示了如何通过调用Vanna AI的文本转SQL接口,导致AI输出目标机器当前目录中的文件列表。

Vanna AI用户被敦促强化实现以防止Plotly操控

JFrog将这一问题报告给了Vanna AI,后者随后发布了指南,建议使用该库的开发者强化实现,以防潜在的远程代码执行风险。

“运行vngenerateplotlycode可以生成任何任意的Python代码,这可能是图表创建所必要的。如果您将此功能暴露给最终用户,您应该使用沙盒环境,”指南中写道。

clash meta

Vanna AI还建议,vngenerateplotlycode函数可以被覆盖,强制返回空字符串,而不是执行任意代码。用户将获得以默认格式返回的查询结果,而不是动态生成的可视化内容。

JFrog建议与任何LLM合作的开发人员应使用沙盒执行环境,采用提示注入跟踪模型,并检查输出完整性,以防止恶意的远程代码执行。

“LLM通常难以区分用户输入与其预定义指南,使它们易受到操控,即提示注入攻击。因此,LLM的实现者不应依赖预提示作为无懈可击的防御机制,而应采用更强健的措施,”研究人员写道。