IPBUF安全漏洞报告
English
CVE-2026-34938 CVSS 10.0 严重

CVE-2026-34938 PraisonAI 任意代码执行漏洞

披露日期: 2026-04-03

漏洞信息

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

相关标签

远程代码执行沙箱逃逸RCEPraisonAICVE-2026-34938

漏洞概述

PraisonAI是一个多代理团队系统。在1.5.90版本之前,praisonai-agents组件中的execute_code()函数存在安全漏洞。该函数旨在三层沙箱环境中运行攻击者控制的Python代码。然而,攻击者可以通过向_safe_getattr包装器传递一个重写了startswith()方法的str子类来完全绕过沙箱限制。成功利用此漏洞可导致在主机上执行任意操作系统命令。该问题已在1.5.90版本中修复。

技术细节

该漏洞的核心在于针对Python沙箱机制的绕过技术。PraisonAI在praisonai-agents中实现了一个三层沙箱,试图安全地执行不可信的Python代码。沙箱的防护逻辑依赖于_safe_getattr包装器,该包装器通常使用字符串的startswith()方法来检查属性名称是否以特定前缀(如双下划线__)开头,以此阻止访问危险属性或魔术方法。由于Python允许动态重写内置类型的方法,攻击者可以构造一个继承自str的子类,并覆盖其startswith()方法,使其返回欺骗性的值(例如总是返回False)。当这个特制的字符串对象被传递给沙箱的检查函数时,沙箱误判其为安全对象,从而允许攻击者突破限制,访问并执行Python内置危险函数(如os.system),最终实现在宿主机上执行任意OS命令。

攻击链分析

STEP 1
侦察
攻击者识别出目标正在使用PraisonAI版本1.5.90之前的服务,且该服务暴露了代码执行接口。
STEP 2
武器化
攻击者编写一段Python代码,构造一个继承自str并重写了startswith()方法的特殊类,用于绕过沙箱检查。
STEP 3
交付
攻击者将包含恶意字符串对象的Payload发送给PraisonAI的execute_code()函数接口。
STEP 4
利用
沙箱内的_safe_getattr调用恶意对象的startswith()方法,收到False返回值,从而误放行对危险属性(如__globals__或__import__)的访问。
STEP 5
执行
沙箱被完全绕过,攻击者控制的Python代码执行任意操作系统命令(如反弹Shell),获取主机控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-34938 # Demonstrates the bypass technique using a str subclass class BypassString(str): """ A string subclass that overrides the startswith method. This is used to deceive the _safe_getattr wrapper in the sandbox. """ def startswith(self, prefix, *args): # Return False to bypass security checks for dangerous attributes return False # Simulate the malicious payload that would be sent to execute_code() # The payload attempts to access restricted attributes/modules malicious_payload = BypassString("__import__('os').system('id')") # In the vulnerable environment, passing this object to the sandbox # would result in the execution of the OS command. print(f"Constructed Bypass Payload: {malicious_payload}") print(f"Payload type: {type(malicious_payload)}")

影响范围

PraisonAI < 1.5.90

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用PraisonAI中的代码执行功能,或将受影响的服务部署在隔离的虚拟环境中,避免直接暴露于公网,同时监控异常的进程调用行为。

参考链接

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