CVE-2025-2026
Executive Summary
CVE-2025-2026 is a high-severity vulnerability affecting the Moxa NPort 6100-G2 and 6200-G2 Series serial-to-Ethernet device servers. The flaw resides in the device’s web API and allows an authenticated remote attacker with read-only privileges to inject a null byte into API requests. This null byte injection can cause an unexpected device reboot, leading to a denial-of-service (DoS) condition. The vulnerability does not require elevated privileges, only a valid web read-only session. No public exploit code or proof-of-concept is currently available, and no patch has been released by Moxa. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant for industrial environments relying on these devices for serial-to-network communication.
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 vector is not provided in the NVD data, but based on the description, a reasonable estimate is:
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): Low (L) – Requires authenticated read-only access.
- User Interaction (UI): None (N) – No user action needed.
- Scope (S): Unchanged (U) – Vulnerability does not affect other components.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): None (N) – No data modification.
- Availability (A): High (H) – Device reboot causes DoS.
Estimated CVSS v3.1 Score: 6.5 (Medium)
Threat Level: Medium – Exploitation requires authentication but can cause significant operational disruption.
Deep Dive & Mechanics
The vulnerability exists in the web API of the Moxa NPort 6100-G2/6200-G2 Series. These devices provide serial-to-Ethernet connectivity, often used in industrial control systems (ICS) and SCADA environments. The web API is used for configuration and monitoring.
Root Cause: The web API does not properly sanitize user-supplied input, specifically null bytes (%00 or \x00). When an authenticated attacker sends a crafted request containing a null byte, the device’s firmware processes it incorrectly, leading to a memory corruption or an unhandled exception that triggers a system reboot.
Attack Vector:
- Attacker gains read-only access to the device’s web interface (e.g., through default credentials, weak passwords, or session hijacking).
- Attacker sends a specially crafted HTTP request to a vulnerable API endpoint, embedding a null byte in a parameter (e.g., in a filename, configuration value, or query string).
- The device’s web server or backend logic fails to handle the null byte, causing a crash or reboot.
Impact: The device reboots, interrupting serial-to-Ethernet communication. This can cause loss of connectivity to critical industrial equipment, leading to production downtime, safety risks, or data loss.
Vulnerable vs. Patched Code
No patch is currently available. The vulnerable code is likely in the web API handler that processes user input without null byte filtering. A patched version would include input validation to reject or escape null bytes.
Vulnerable Code (Conceptual):
// Vulnerable: No null byte check
void handle_api_request(char *input) {
char buffer[256];
strcpy(buffer, input); // Null byte truncates string
process_config(buffer);
}
Patched Code (Conceptual):
// Patched: Reject null bytes
void handle_api_request(char *input) {
if (strchr(input, '\0') != NULL) {
return_error("Invalid input");
return;
}
char buffer[256];
strncpy(buffer, input, sizeof(buffer) - 1);
buffer[sizeof(buffer) - 1] = '\0';
process_config(buffer);
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a Moxa NPort 6100-G2 or 6200-G2 device (physical or emulated).
- Valid web read-only credentials (e.g.,
user:user). - Network connectivity to the device’s web interface (default port 80 or 443).
Exploitation Steps:
- Identify the device’s IP address (e.g., via Shodan or network scan).
- Authenticate to the web interface:
curl -X POST http://<device_ip>/login -d "username=user&password=user" -c cookies.txt - Enumerate API endpoints (e.g.,
/api/v1/config,/api/v1/reboot). - Craft a null byte injection payload:
curl -X POST http://<device_ip>/api/v1/config -b cookies.txt -d "param=value%00" - Observe device reboot via network connectivity loss or SNMP trap.
Note: No public exploit code exists. The above is a conceptual approach.
Blue Team
Detection:
- Monitor for HTTP requests containing
%00or\x00in API parameters. - Alert on repeated authentication attempts from unknown IPs.
- Use network intrusion detection systems (NIDS) to flag null byte patterns.
Prevention:
- Restrict web interface access to trusted IPs only.
- Enforce strong passwords and multi-factor authentication.
- Disable web interface if not required for operations.
- Apply network segmentation to isolate NPort devices.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests containing
%00in URI or POST body. - Repeated failed login attempts followed by successful authentication.
- Device reboot logs (e.g., syslog entries showing unexpected restart).
- HTTP requests containing
- Host IOCs:
- Device logs showing null byte errors or crashes.
- Unexpected device uptime resets.
- File IOCs:
- None (no file-based persistence).
Detection Engineering
YARA Rule
rule CVE_2025_2026_Null_Byte_Injection {
meta:
description = "Detects null byte injection attempts targeting Moxa NPort web API"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-2026"
strings:
$null_byte = "%00"
$api_endpoint = "/api/v1/"
condition:
$null_byte and $api_endpoint
}
Sigma Rule
title: Moxa NPort Null Byte Injection Attempt
id: 8a3f7c2e-5d1b-4a9f-8c6e-2b1d3f4a5c6d
status: experimental
description: Detects HTTP requests containing null bytes to Moxa NPort web API
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains: '%00'
cs-uri-stem|startswith: '/api/v1/'
condition: selection
falsepositives:
- Legitimate use of null bytes in rare cases (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-2026 Moxa NPort Null Byte Injection Attempt"; flow:to_server; content:"%00"; http_uri; content:"/api/v1/"; http_uri; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable Web Interface: If not required, disable the web interface via device configuration or firewall rules.
- Network Segmentation: Place NPort devices on a separate VLAN with strict access controls.
- Monitor Logs: Enable and review device logs for unexpected reboots or null byte patterns.
Long-Term Fix:
- Await an official firmware patch from Moxa. Contact Moxa support for updates.
- Implement input validation at the network perimeter (e.g., web application firewall) to block null bytes.
Workarounds:
- Use SSH or serial console for configuration instead of web API.
- Restrict web access to authorized IPs only.
Valters IT
Securing Industrial Networks, One CVE at a Time.