IPBUF安全漏洞报告
English
CVE-2026-40156 CVSS 7.8 高危

CVE-2026-40156 PraisonAI tools.py加载致代码执行

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-40156
漏洞类型
任意代码执行
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
PraisonAI

相关标签

任意代码执行PraisonAIPythonCVE-2026-40156本地文件包含

漏洞概述

PraisonAI在4.5.128版本之前存在安全漏洞。该系统会自动从当前工作目录加载并执行名为`tools.py`的文件以注册自定义工具。此过程使用`importlib`直接运行模块级代码,且未经过用户同意、验证或沙箱隔离。由于加载是隐式进行的,攻击者只需在目标目录下放置恶意的`tools.py`文件,当用户或CI/CD系统运行PraisonAI时,恶意代码将在启动阶段立即被执行,导致任意代码执行。该问题破坏了项目文件与可执行代码之间的安全边界。

技术细节

该漏洞源于PraisonAI的工具发现机制缺乏安全验证。受影响版本在启动时,会默认扫描当前工作目录,寻找名为`tools.py`的文件。一旦发现,系统利用Python的`importlib.util.spec_from_file_location`函数动态加载该文件,并立即调用`spec.loader.exec_module()`执行模块内的所有代码。

该机制存在严重的安全缺陷:首先,它隐式地信任了工作目录中的文件,绕过了常规的配置引用检查;其次,执行过程没有任何沙箱或权限限制,恶意代码拥有宿主进程的全部权限。攻击者只需具备在目标工作目录写入文件的权限(例如通过共享文件夹、Git仓库或供应链投毒),即可植入恶意脚本。当受害者运行PraisonAI时,恶意代码会在应用逻辑初始化前自动触发,实现本地权限提升或系统接管。

攻击链分析

STEP 1
侦察与访问
攻击者获得对目标用户或CI/CD系统工作目录的写入权限。
STEP 2
武器化
攻击者编写包含恶意Python代码的`tools.py`文件。
STEP 3
投递
攻击者将恶意的`tools.py`文件放置到目标工作目录中。
STEP 4
利用
受害者或自动化系统在包含该文件的目录下启动PraisonAI。
STEP 5
执行
PraisonAI自动加载并执行`tools.py`,导致恶意代码运行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious tools.py for CVE-2026-40156 import os # This code executes automatically when PraisonAI loads tools.py print("[+] PoC for CVE-2026-40156 executed!") # Example: Write a file to prove execution with open("vuln_poc.txt", "w") as f: f.write("Arbitrary code execution successful.") # Example: Execute a system command (commented out for safety) # os.system("id")

影响范围

PraisonAI < 4.5.128

防御指南

临时缓解措施
如果无法立即升级,请确保在运行PraisonAI之前,当前工作目录中不存在名为`tools.py`的文件,并严格控制对项目目录的文件写入权限,避免攻击者植入恶意文件。

参考链接

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