Vanna AI 即时注入漏洞可实现 RCE

由于提示注入漏洞,Vanna AI 库可能被利用进行远程代码执行 (RCE)。

JFrog 的研究人员 发现漏洞 在库的图表生成过程中,允许通过用户提示传递的有效载荷进行 RCE。该漏洞也是由中国科学院信息工程研究所的博士生刘彤独立发现的,他 已报告 通过 Huntr 漏洞赏金平台。

Vanna AI 可以将自然语言提示转换为 SQL 查询,并使用基于 Python 的图形库 Plotly 将查询结果以可视化图表的形式呈现给用户。Vanna AI 实现可以通过 Jupyter Notebook 等程序与数据库交互,并通过 Slackbot、Streamlit 应用程序或其他自定义 Web 应用程序等应用程序提供给最终用户。

在周四发布的一篇博客文章中,JFrog 研究人员详细介绍了该漏洞的工作原理,该漏洞被追踪为 CVE-2024-5565 启用 RCE。

用户的提示首先会发送给 LLM,其中包含预提示指令,告知 LLM 根据提示生成 SQL 查询。生成的 SQL 查询随后会发送到数据库,然后原始提示和查询结果都会传递给 Plotly 进行图表创建。

Python Plotly 代码是根据从 LLM 收到的提示动态生成的,然后通过 Python 的 exec 方法运行以生成查询数据的可视化。由于在此链末尾执行的 Python 代码具有动态特性,用户可以操纵该过程以执行自己的恶意代码,方法是精心设计提示,以确保他们的有效负载最终出现在最终的 Plotly 脚本中。

问题在于,只有当用户提示可用于生成有效的 SQL 查询时,它才会被接受。然而,JFrog 研究人员演示了一个概念验证提示注入,其中包括一个有效的 SQL 查询,用于打印一个简单的字符串,该字符串指示 LLM 在 Plotly 代码的开头附加有效载荷代码。

研究人员利用他们的 PoC 漏洞展示了如何提示 Vanna AI 的文本到 SQL 接口可以导致 AI 输出目标机器当前目录中的文件列表。

Vanna AI 用户被敦促加强针对 Plotly 操纵的实施

JFrog 向 Vanna AI 报告了此问题,随后 发布指南 对于使用该库来加强其实现以防止潜在的 RCE 的开发人员来说。

“运行 vn.generate_plotly_code 可以生成任意 Python 代码,这可能是创建图表所必需的。如果向最终用户公开此功能,则应使用沙盒环境,”指南指出。

Vanna AI 还建议,可以覆盖 vn.generate_plotly_code 函数并强制返回空字符串,而不是执行任意代码。然后,用户将以默认格式而不是动态生成的可视化形式收到查询结果。

JFrog 建议使用任何 LLM 的开发人员将执行环境置于沙盒中,使用提示注入跟踪模型并检查输出完整性以防止恶意 RCE。

“LLM 通常很难区分用户输入和预定义准则,这使得它们容易受到操纵,即提示注入攻击。因此,LLM 实施者不应依赖预提示作为万无一失的防御机制,而应采用更强大的机制,”研究人员写道。

1719664586
#Vanna #即时注入漏洞可实现 #RCE
2024-06-28 16:24:40

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​