IPBUF安全漏洞报告
English
CVE-2026-5972 CVSS 7.3 高危

CVE-2026-5972: MetaGPT OS命令注入漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-5972
漏洞类型
操作系统命令注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FoundationAgents MetaGPT

相关标签

OS Command InjectionRCEMetaGPTCVE-2026-5972Python高危漏洞

漏洞概述

FoundationAgents MetaGPT 0.8.1及之前版本存在操作系统命令注入漏洞。该漏洞源于metagpt/tools/libs/terminal.py库中的Terminal.run_command函数未能正确过滤用户输入。攻击者无需身份认证且无需用户交互,即可通过网络远程利用此漏洞。由于漏洞利用代码已被公开披露,攻击者可以构造恶意命令,导致在目标服务器上执行任意系统命令,进而获取敏感信息、篡改数据或破坏服务可用性,风险极高。

技术细节

该漏洞位于MetaGPT项目的metagpt/tools/libs/terminal.py文件中,具体涉及Terminal.run_command方法。该方法在处理命令执行请求时,未对传入的参数进行严格的输入验证或转义处理。当外部不可信的数据被直接传递给该函数并拼接到系统shell命令中时,攻击者可以通过注入特殊的shell元字符(如;、|、&或反引号等)来改变原有命令的逻辑结构。由于CVSS向量显示攻击无需认证(PR:N)且可远程利用(AV:N),攻击者可以通过发送特制的网络请求触发该漏洞。成功利用后,攻击者将获得在运行MetaGPT的宿主操作系统上下文中执行任意命令的权限。这不仅允许攻击者读取服务器上的敏感文件,还可以修改或删除关键数据,甚至导致服务瘫痪。修复补丁d04ffc8d表明官方已针对此问题进行了代码更新。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标系统正在运行FoundationAgents MetaGPT 0.8.1或更早版本,并确认其暴露了相关API接口。
STEP 2
2. 构造Payload
攻击者构造包含Shell元字符(如分号或管道符)的恶意字符串,旨在拼接并执行任意系统命令。
STEP 3
3. 发送请求
攻击者通过网络向受影响的Terminal.run_command接口发送包含恶意Payload的请求,无需认证。
STEP 4
4. 命令执行
由于缺乏过滤,后端将恶意字符串直接传递给系统Shell执行,导致攻击者预设的命令在服务器上运行。
STEP 5
5. 获取权限
攻击者利用执行的命令获取服务器敏感信息、建立后门或进一步横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os # Simulating the vulnerable Terminal class class Terminal: def run_command(self, command): # Vulnerable implementation: direct execution without sanitization # This mimics the behavior in metagpt/tools/libs/terminal.py print(f"[+] Executing command: {command}") os.system(command) def exploit_poc(): target = Terminal() # Payload: Injecting a command to create a file or execute whoami # Using a semicolon to separate commands malicious_input = "echo 'Hello World'; whoami; touch /tmp/poc_test.txt" print("[*] Attempting to trigger CVE-2026-5972...") try: target.run_command(malicious_input) except Exception as e: print(f"[-] Exploit failed: {e}") if __name__ == "__main__": exploit_poc()

影响范围

FoundationAgents MetaGPT <= 0.8.1

防御指南

临时缓解措施
如果无法立即升级,建议临时禁用受影响的Terminal.run_command功能或严格限制调用该函数的来源IP。同时,检查系统日志中是否存在异常的进程调用或未知的文件创建行为,以确认是否已被入侵。

参考链接

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