CVE-2026-3661 Overview
CVE-2026-3661 is a command injection vulnerability in the Wavlink WL-NU516U1 router running firmware version 240425. The flaw resides in the ota_new_upgrade function of /cgi-bin/adm.cgi, where the model argument is passed to a shell context without proper sanitization. An authenticated remote attacker can manipulate the argument to inject arbitrary operating system commands. The issue is classified under [CWE-74] (Improper Neutralization of Special Elements in Output Used by a Downstream Component). Public exploit documentation has been released, and the vendor was contacted prior to disclosure.
Critical Impact
Authenticated attackers can inject OS commands through the firmware upgrade handler, potentially leading to device compromise on affected Wavlink WL-NU516U1 routers.
Affected Products
- Wavlink WL-NU516U1 (hardware)
- Wavlink WL-NU516U1 firmware version M16U1_V240425
- Devices exposing /cgi-bin/adm.cgi over the management interface
Discovery Timeline
- 2026-03-07 - CVE-2026-3661 published to NVD
- 2026-04-29 - Last updated in NVD database
Technical Details for CVE-2026-3661
Vulnerability Analysis
The vulnerability exists in the ota_new_upgrade function exposed through the administrative CGI handler /cgi-bin/adm.cgi. The handler accepts a model parameter that is incorporated into a downstream shell command without escaping or validation. Because the parameter is not neutralized, shell metacharacters supplied by an authenticated user are interpreted by the underlying command interpreter.
Exploitation requires high privileges, as the endpoint sits behind administrative authentication. The attack vector is network-based, allowing remote interaction with the management interface. Successful exploitation yields command execution in the context of the web service process, which on consumer routers typically runs with elevated privileges.
According to the published EPSS data dated 2026-05-14, the probability score is 0.243% at the 47.575 percentile.
Root Cause
The root cause is improper neutralization of special elements in the model argument before it is used to construct a system command. The firmware concatenates user-controlled input into a shell invocation rather than using safe execution primitives such as execve with argument arrays. This pattern is recurrent across SOHO router firmware and falls under [CWE-74].
Attack Vector
An attacker who possesses administrative credentials sends a crafted HTTP request to /cgi-bin/adm.cgi, targeting the ota_new_upgrade function with shell metacharacters appended to the model parameter. The injected payload executes alongside the intended firmware upgrade routine. No user interaction is required beyond the attacker's request.
The vulnerability manifests in the CGI request handler. Refer to the GitHub CVE Documentation and VulDB entry #349550 for the request structure and parameter details.
Detection Methods for CVE-2026-3661
Indicators of Compromise
- HTTP POST requests to /cgi-bin/adm.cgi containing shell metacharacters (;, |, `, $() in the model parameter
- Unexpected child processes spawned by the router's HTTP daemon, particularly sh, wget, tftp, or nc invocations
- Outbound connections from the router to unfamiliar hosts shortly after administrative HTTP traffic
Detection Strategies
- Inspect router HTTP access logs for requests to adm.cgi referencing ota_new_upgrade with non-alphanumeric model values
- Monitor authenticated administrative sessions for anomalous source IP addresses or unusual request timing
- Apply network IDS signatures that flag command injection patterns inside HTTP POST bodies destined for management interfaces
Monitoring Recommendations
- Forward router syslog and HTTP audit logs to a centralized log analytics platform for retention and correlation
- Baseline normal administrative traffic to the device so that injection attempts stand out against expected operator activity
- Alert on firmware upgrade endpoints being invoked from sources other than approved management workstations
How to Mitigate CVE-2026-3661
Immediate Actions Required
- Restrict access to the router administrative interface to trusted management VLANs or specific source IP addresses
- Rotate administrative credentials and enforce strong, unique passwords on the device
- Disable remote (WAN-side) management until a patched firmware version is available
Patch Information
No vendor advisory or patched firmware build has been published in the references available for CVE-2026-3661. Monitor the Wavlink support portal and the VulDB tracking entry for updated firmware releases beyond M16U1_V240425.
Workarounds
- Place the router behind a network segment that blocks untrusted access to TCP/80 and TCP/443 on the management interface
- Audit administrator accounts and remove unused credentials that could be leveraged to reach the authenticated endpoint
- Consider replacing the device if no patched firmware is released within an acceptable risk window
# Example: restrict management access to a trusted host using iptables on an upstream gateway
iptables -A FORWARD -p tcp -d <router_ip> --dport 80 -s <admin_workstation_ip> -j ACCEPT
iptables -A FORWARD -p tcp -d <router_ip> --dport 80 -j DROP
iptables -A FORWARD -p tcp -d <router_ip> --dport 443 -s <admin_workstation_ip> -j ACCEPT
iptables -A FORWARD -p tcp -d <router_ip> --dport 443 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

