CVE-2025-3248 – Langflow 未授权远程代码执行漏洞分析
概述
CVE-2025-3248 是 Langflow(一个流行的低代码 LLM 应用构建框架)中的一个严重未授权远程代码执行(RCE)漏洞。该漏洞源于不安全地使用 Python 内置的 exec() 函数来执行未经处理的用户输入,使得攻击者能够在服务器上执行任意 Python 代码,完全控制底层系统。
- CVE ID: CVE-2025-3248
- 严重程度: 严重
- CVSS 评分: 9.8
- EPSS 评分: 92.57%
- 发布日期: 2025年5月22日
- 受影响版本: ≤ v1.3.0
- 已修复版本: v1.3.0+
技术分析
Langflow 暴露了一个 /api/v1/builder/execute_code 端点,该端点接收用户提供的 Python 代码,并在后端直接传递给 exec() 函数执行。由于没有身份验证或沙箱保护,攻击者可以构造任意载荷以实现代码执行。
示例请求:
|
|
漏洞代码片段:
|
|
该代码片段显示,既没有沙箱保护,也没有使用 ast.literal_eval 或子进程控制,直接对攻击者输入进行未处理的执行。
利用条件
- Langflow 实例可通过网络访问
- 漏洞端点无需身份验证
- 版本 ≤ 1.3.0
利用步骤
公开的 PoC 代码可在以下地址获取:https://github.com/xuemian168/CVE-2025-3248.git
要利用存在漏洞的 Langflow 实例,克隆该仓库并针对目标执行提供的脚本。
示例输出:
|
|
成功利用后,命令将以 langflow 进程的权限在服务器端执行。
缓解措施
- 升级到 Langflow v1.3.0 或更高版本
- 通过防火墙或反向代理限制对漏洞端点的访问
- 移除或替换
exec()函数的使用,采用更安全的替代方案 - 对所有 API 端点要求身份验证
- 实施运行时应用保护和出口限制