/

CVE-2026-110957

Severity:

CRITICAL RISK

(10.0)

OS Command Injection (CWE-78) in Wavlink WL-WN530BE2-A

CVE-2026-110957

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-77, CWE-78

Impact:

Remote Code Execution

Severity:

CRITICAL RISK

(10.0)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A critical OS command injection vulnerability in Wavlink WL-WN530BE2-A routers allows attacker-controlled address data to influence command execution in the Login Processing component.

Because the affected API handler is remotely reachable, an attacker who can reach the relevant service and satisfy its request-handling conditions may execute operating-system commands with the router process's privileges.

A critical OS command injection vulnerability in Wavlink WL-WN530BE2-A routers allows attacker-controlled address data to influence command execution in the Login Processing component.

Because the affected API handler is remotely reachable, an attacker who can reach the relevant service and satisfy its request-handling conditions may execute operating-system commands with the router process's privileges.

Affected context

The vulnerability occurs in the api.cgi Login Processing component, specifically in the sub_12580 function. It affects firmware versions through the stated vulnerable release when the REMOTE_ADDR value is incorporated into a shell command rather than passed as data through a safe process-execution interface. Exploitation risk depends on network exposure of the affected API and whether the address value can be influenced or preserved through the request path.

The vulnerability occurs in the api.cgi Login Processing component, specifically in the sub_12580 function. It affects firmware versions through the stated vulnerable release when the REMOTE_ADDR value is incorporated into a shell command rather than passed as data through a safe process-execution interface. Exploitation risk depends on network exposure of the affected API and whether the address value can be influenced or preserved through the request path.

Exploit preconditions

  • Attack surface: Remotely reachable router API and Login Processing handler
  • Required access: Network access to the affected service; additional authentication requirements depend on the handler's access controls
  • Trigger point: Processing of a request that causes the REMOTE_ADDR argument to reach the vulnerable command-construction path
  • Why exploitation is possible: User-influenced data is incorporated into a shell command, allowing command syntax to be interpreted instead of treated solely as an address value
  • Attack surface: Remotely reachable router API and Login Processing handler
  • Required access: Network access to the affected service; additional authentication requirements depend on the handler's access controls
  • Trigger point: Processing of a request that causes the REMOTE_ADDR argument to reach the vulnerable command-construction path
  • Why exploitation is possible: User-influenced data is incorporated into a shell command, allowing command syntax to be interpreted instead of treated solely as an address value

Why this happens

The underlying defect is a failure to separate untrusted data from operating-system command syntax. The Login Processing code constructs or invokes a shell command using the REMOTE_ADDR value, creating an injection boundary in which specially formed input may alter the command that the process executes.

This maps primarily to CWE-78: Improper Neutralization of Special Elements used in an OS Command, with CWE-77: Improper Neutralization of Special Elements in Output Used by a Downstream Component describing the broader command-injection pattern. The insecure pattern is the use of shell-based execution with concatenated or insufficiently constrained input instead of an argument-vector interface and strict input handling.

The underlying defect is a failure to separate untrusted data from operating-system command syntax. The Login Processing code constructs or invokes a shell command using the REMOTE_ADDR value, creating an injection boundary in which specially formed input may alter the command that the process executes.

This maps primarily to CWE-78: Improper Neutralization of Special Elements used in an OS Command, with CWE-77: Improper Neutralization of Special Elements in Output Used by a Downstream Component describing the broader command-injection pattern. The insecure pattern is the use of shell-based execution with concatenated or insufficiently constrained input instead of an argument-vector interface and strict input handling.

Potential impact

  • An attacker may execute arbitrary operating-system commands on the router.
  • The device may be compromised with the privileges of the affected service.
  • Network traffic, credentials, or configuration data could be exposed.
  • The router could be used for persistence, traffic manipulation, or attacks against other systems.
  • Device availability and integrity may be affected.
  • An attacker may execute arbitrary operating-system commands on the router.
  • The device may be compromised with the privileges of the affected service.
  • Network traffic, credentials, or configuration data could be exposed.
  • The router could be used for persistence, traffic manipulation, or attacks against other systems.
  • Device availability and integrity may be affected.

General mitigation guidance

Mitigation generally focuses on removing shell interpretation from request-processing paths and reducing trust in client-supplied address data.

Common defensive patterns include:

  • Invoke required programs through an argument-vector API rather than a shell command or string-concatenation interface.
  • Treat client address fields as untrusted metadata and validate them against a strict address format before use.
  • Apply length limits, null checks, and canonical parsing before any downstream processing.
  • Avoid exposing administrative or login APIs directly to untrusted networks; use authenticated, segmented management access where appropriate.
  • Run services with the minimum filesystem, process, and network privileges required.
  • Prefer fixed command paths and fixed argument positions when process execution is unavoidable.

Mitigation generally focuses on removing shell interpretation from request-processing paths and reducing trust in client-supplied address data.

Common defensive patterns include:

  • Invoke required programs through an argument-vector API rather than a shell command or string-concatenation interface.
  • Treat client address fields as untrusted metadata and validate them against a strict address format before use.
  • Apply length limits, null checks, and canonical parsing before any downstream processing.
  • Avoid exposing administrative or login APIs directly to untrusted networks; use authenticated, segmented management access where appropriate.
  • Run services with the minimum filesystem, process, and network privileges required.
  • Prefer fixed command paths and fixed argument positions when process execution is unavoidable.

How teams detect issues like this

Organizations can look for command-injection risks through:

  • Static analysis rules identifying system()-style calls, shell execution APIs, and string concatenation involving request parameters.
  • Code review checks for HTTP, proxy, or client-address fields reaching process-spawning functions.
  • Tests that verify process invocation uses argument vectors and that malformed or overlong address values are rejected.
  • Runtime monitoring for unexpected child processes, shell interpreters, or command execution originating from the router's API service.
  • Network policy enforcement that restricts administrative API access and alerts on anomalous requests.

Automated security scanners and code-review tools may help identify unsafe command construction, but findings should be validated against the device's actual request and privilege model.

Organizations can look for command-injection risks through:

  • Static analysis rules identifying system()-style calls, shell execution APIs, and string concatenation involving request parameters.
  • Code review checks for HTTP, proxy, or client-address fields reaching process-spawning functions.
  • Tests that verify process invocation uses argument vectors and that malformed or overlong address values are rejected.
  • Runtime monitoring for unexpected child processes, shell interpreters, or command execution originating from the router's API service.
  • Network policy enforcement that restricts administrative API access and alerts on anomalous requests.

Automated security scanners and code-review tools may help identify unsafe command construction, but findings should be validated against the device's actual request and privilege model.

Sources

SourceLink
dl.wavlink.comdl.wavlink.com/firmware/RD/WN530BE2_WAVLINK-WO-2026-09-24-841a51c6d5_tclinux.bin
github.comgithub.com/F-yyjy/cve/blob/main/WN530BE2-A_api-cgi.md
vuldb.comvuldb.com/cve/CVE-2026-110957
vuldb.comvuldb.com/submit/920217
vuldb.comvuldb.com/vuln/420570
vuldb.comvuldb.com/vuln/420570/cti

Frequently asked

questions

Yes, the reported attack surface is a remotely reachable API handler. Practical exploitability still depends on network exposure and any authentication or routing controls protecting that handler.

The supplied information does not establish a universal authentication requirement. Access to the affected API and the ability for the relevant address value to reach the vulnerable code path are the key conditions.

Eliminate shell-based command construction, pass arguments through a safe argument-vector interface, and strictly validate, length-limit, and null-check address data.

Use secure process-execution APIs, maintain strict trust boundaries for request metadata, apply least privilege, and combine code review with static analysis and runtime monitoring.

Yes, the reported attack surface is a remotely reachable API handler. Practical exploitability still depends on network exposure and any authentication or routing controls protecting that handler.

The supplied information does not establish a universal authentication requirement. Access to the affected API and the ability for the relevant address value to reach the vulnerable code path are the key conditions.

Eliminate shell-based command construction, pass arguments through a safe argument-vector interface, and strictly validate, length-limit, and null-check address data.

Use secure process-execution APIs, maintain strict trust boundaries for request metadata, apply least privilege, and combine code review with static analysis and runtime monitoring.

Find out what's already
exploitable in your codebase.