☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 9.9 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H 🐛 CWE-77
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-109108

CVE-2026-109108 Command Injection in Wavlink
📅 PUBLISHED: 2026-10-13 00:00 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 251117 (WL-WN530BE1-A)
CVSS VECTOR BREAKDOWN 9.9
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: H Confidentiality High
I: H Integrity High
A: H Availability High
9.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-109108 is a critical OS command injection vulnerability in Wavlink WL-WN530BE1-A firmware version 251117, affecting the popen function within the /cgi-bin/uploadVpn.cgi handler. The flaw is triggered via manipulation of the Type argument, allowing an authenticated remote attacker to execute arbitrary operating system commands with the privileges of the CGI process. With a CVSS base score of 9.9 (Critical) and a publicly disclosed exploit, this vulnerability poses an immediate risk to internet-facing Wavlink WL-WN530BE1-A devices, where successful exploitation could lead to full device compromise, persistent backdoor installation, and use of the device as a pivot point into the internal network.

⚡ 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

Technical Analysis

The vulnerability is classified as CWE-77 (Improper Neutralization of Special Elements used in a Command). The root cause resides in the /cgi-bin/uploadVpn.cgi CGI script, specifically in the function popen. This function is a standard C library routine that opens a pipe to a process, executing a shell command. The NVD description states that "manipulation of the argument Type leads to os command injection." This indicates that the Type parameter, supplied by the HTTP request (likely via GET or POST to the CGI endpoint), is passed to the shell command executed by popen without adequate validation or sanitization.

The attack surface is the web management interface of the Wavlink WL-WN530BE1-A router. The /cgi-bin/uploadVpn.cgi endpoint is likely intended for VPN configuration uploads but improperly handles the Type argument. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) confirms that the attack is network-reachable with low complexity, requires low privileges (authenticated access), and results in a scope change — indicating that the vulnerable component (CGI process) can execute commands that affect resources beyond its security scope (the entire underlying OS). The high confidentiality, integrity, and availability impacts reflect the total compromise of the device.

The public disclosure of the exploit (POC_STATUS: Public) and the absence of a patch (Patch Confidence: 0/4) make this a high-priority target for threat actors. No public exploit code or Nuclei template was found in the provided data, but the "exploit has been disclosed publicly and may be used" per NVD. The CVSS score of 9.9 is derived from a vector that assumes an authenticated attack (PR:L). If the web interface is exposed without authentication, the effective severity could be higher in practice.

Exploitation Scenarios

1. Reconnaissance/target identification: An attacker identifies internet-facing Wavlink WL-WN530BE1-A devices via Shodan, Censys, or scanning tools using dorks such as http.title:"Wavlink" or http.html:"uploadVpn.cgi". The attacker confirms the firmware version 251117 to match the vulnerable target.

2. Authentication and triggering: The attacker authenticates to the device's web management interface with low privileges (e.g., default or compromised credentials). They then send a crafted HTTP request to /cgi-bin/uploadVpn.cgi, injecting shell metacharacters (e.g., ;, |, $()) into the Type argument. Since the vulnerability is in the popen function, the Type argument is likely concatenated into a command string executed by the shell.

3. Payload/execution method: The injection payload is crafted to execute arbitrary OS commands. For example, a typical command injection payload might be Type=wireguard; id or Type=wireguard$(reboot). The shell command executed by popen runs with the privileges of the CGI process (typically root on embedded devices). The attacker can then download and execute a reverse shell script, add SSH keys, or modify firewall rules. The exact syntax is not specified in the NVD description, but the mechanism is standard OS command injection.

4. Post-exploitation impact: Successful exploitation results in full root-level compromise of the device. The attacker can persist via cron jobs, firmware modification, or adding a backdoor account. The device can be used as a proxy or pivot point to attack internal network resources, potentially leading to lateral movement and further compromise of connected systems.

No public PoC or exploit code was available in the provided data, but the vulnerability class is well-understood and the disclosure status indicates that exploitation is feasible.

Impact Assessment

The CVSS base score of 9.9 (Critical) reflects the severe impact of this vulnerability. The vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H indicates:

  • AV:N (Network): Exploitable remotely over the network.
  • AC:L (Low): No special conditions or complex attack sequences required.
  • PR:L (Low): The attacker requires basic authentication to the web interface.
  • UI:N (None): No user interaction needed.
  • S:C (Changed): Exploitation can impact resources beyond the vulnerable component (the entire OS).
  • C:H/I:H/A:H: Total loss of confidentiality, integrity, and availability.

Business impact: Compromise of the router can lead to interception of all network traffic, redirection of DNS queries, injection of malicious content, and persistent access to the corporate network. The device often serves as the network gateway, making it a high-value target. The blast radius includes all devices behind the router and any data transmitted through it. Because the device is likely deployed in SOHO/SMB environments and remote offices, the impact can extend to multiple sites. The lack of a patch (Patch Confidence: 0/4) and the public disclosure (POC_STATUS: Public) increase the urgency for mitigation.

Detection Guidance

Sigma Rule

title: Wavlink WL-WN530BE1-A OS Command Injection via uploadVpn.cgi
id: 7a3b1c2e-4f5d-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects exploitation attempts targeting CVE-2026-109108 via the Type parameter in /cgi-bin/uploadVpn.cgi
author: SOC Team
date: 2026-05-12
logsource:
  category: webserver
detection:
  selection:
    cs-uri-stem|contains: '/cgi-bin/uploadVpn.cgi'
    cs-uri-query|contains|all:
      - 'Type='
      - ';'
  condition: selection
falsepositives:
  - Legitimate VPN configuration uploads (unlikely to contain shell metacharacters)
level: critical

YARA Rule

rule CVE_2026_109108_Wavlink_Command_Injection
{
    meta:
        description = "Detects exploit attempts for CVE-2026-109108 in Wavlink WL-WN530BE1-A firmware"
        author = "Threat Intel Team"
        date = "2026-05-12"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-109108"
        severity = "critical"
    strings:
        $s1 = "uploadVpn.cgi" ascii wide nocase
        $s2 = "Type=" ascii wide nocase
        $s3 = "popen" ascii wide nocase
        $cmd1 = ";" ascii wide
        $cmd2 = "|" ascii wide
        $cmd3 = "$(" ascii wide
        $cmd4 = "`" ascii wide
    condition:
        any of ($s*) and any of ($cmd*)
}

Suricata IDS Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-109108 Wavlink WL-WN530BE1-A OS Command Injection Attempt"; flow:to_server,established; content:"/cgi-bin/uploadVpn.cgi"; http_uri; content:"Type="; http_uri; pcre:"/Type=[^&]*(;|\||\$\(|`)/Ui"; reference:cve,2026-109108; classtype:attempted-admin; sid:10000001; rev:1;)

Elastic Detection

process where event.type == "start" and process.parent.name in ("uploadVpn.cgi", "httpd", "lighttpd", "uhttpd") and process.name in ("sh", "bash", "cmd.exe") and process.args : "*Type=*" and (process.args : "*;*" or process.args : "*|*" or process.args : "*$(*" or process.args : "*`*")

Splunk SPL Query

index=web sourcetype=access_combined
| search uri_path="/cgi-bin/uploadVpn.cgi" AND (uri_query="*Type=*" AND (uri_query="*;*" OR uri_query="*|*" OR uri_query="*$(*" OR uri_query="*`*"))
| table _time, src_ip, method, uri_path, uri_query, status
| sort - _time

Wazuh OSSEC Rule

<group name="web,attack,">
  <rule id="100200" level="12">
    <decoded_as>web-accesslog</decoded_as>
    <url>/cgi-bin/uploadVpn.cgi</url>
    <query>Type=</query>
    <regex>Type=[^&]*(;|\||\$\(|`)</regex>
    <description>CVE-2026-109108: Wavlink WL-WN530BE1-A OS command injection attempt detected</description>
    <mitre>
      <id>T1190</id>
    </mitre>
    <group>cve_2026_109108,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).

  1. Immediate mitigations:

    • Disable remote management access to the web interface if not required.
    • Restrict access to /cgi-bin/uploadVpn.cgi via firewall rules or reverse proxy, allowing only trusted IP addresses.
    • Change default administrative credentials and enforce strong passwords.
    • Implement network segmentation to isolate IoT/edge devices from critical internal assets.
    • Monitor for suspicious outbound connections from the router to unknown IP addresses.
  2. Patch/upgrade steps:

    • No vendor patch is currently available. Contact Wavlink support for firmware updates and monitor their security advisory page.
    • Consider replacing the device with a supported alternative if a patch is not forthcoming.
  3. Long-term hardening:

    • Deploy a WAF or IPS with virtual patching for command injection patterns.
    • Regularly audit embedded device firmware versions and apply updates promptly.
    • Implement egress filtering to prevent command-and-control communication.
    • Use an inventory system to track EOL devices and plan replacements.

References

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Wavlink"
title:"Wavlink"
product:"Wavlink" "251117"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-109108/ · 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.