Demystifying RCE Vulnerabilities in LLM-Integrated Apps
LLM在多种下游任务中有很好的表现,LLM-integrated framework作为许多LLM集成网络应用的基础,却面临着远程代码执行(RCE)漏洞的威胁。这会造成攻击者通过prompt injection在app服务器上远程执行任意代码。
针对这种类型的漏洞,作者提出两种策略用于验证在LLM-integrated web app中的漏洞。1) LLMSmith工具,通过静态分析扫描框架源代码来探测潜在的RCE漏洞;2) 一种基于prompt的自动化测试方法,用于验证LLM-integrated web app中的漏洞。应用这种方法本文在6个框架中发现了13个漏洞,包括12个RCE漏洞以及1个任意文件读/写漏洞。其中11个被框架开发者确认,确认了7个CVE ID。在对51个软件进行测试后,发现其中17个软件存在漏洞。其中,16个app的漏洞是RCE漏洞,1个app的漏洞是SQL Injection。
此后,本文研究如何扩大REC漏洞的攻击影响。研究发现REC漏洞允许攻击者利用其他应用程序用户(例如应用程序响应劫持、用户 API 密钥泄漏),而无需攻击者和受害者之间直接交互。最后,我们提出了一些缓解策略,以提高框架和应用程序开发人员的安全意识,帮助他们有效地缓解这些风险。

Introduction
- LLM-integrated framwork (LLM-integrated middleware)
- LangChain [14] and LlamaIndex [17].
Approach
- vulnerable API extraction. 提取从LLM-integrated framework的high-level user API到vulnerable function的调用链,确定可能导致RCE漏洞的vulnerable API。
- LLM-integrated app collection. 包括对白盒app(代码开源)、黑盒app(代码闭源)、灰盒app(代码开源但通过黑盒方法收集)的收集。
- white-box app. 在GitHub中扫描收集到的vulnerable API,提取公开部署的URL。
- black-box / grey-box app. 从白盒app中提取描述关键词,在app markets中根据关键词搜索相关app。
- prompt-based exploitation. 根据预定义的prompt template进行exploitation,并进一步考虑LLM jailbreak和code jailbreak的方法。
Vulnerable API Extraction
生成调用图,提取从LLM-integrated framework的high-level user API到vulnerable function的调用链,确定可能导致RCE漏洞的vulnerable API。
- implicit callee. 部分callee是隐式调用的(e.g., PythonAstREPLTool._run)无法直接通过调用图找到其caller。因此LLMSmith首先确定callee是否为隐式调用,此后在调用图中搜索对于该callee本身(e.g., PythonAstREPLTool)的调用。
- PoC generation. 从文档和test suit中获取示例代码,并更改目标API的参数,测试提取的调用链的正确性。
