/

CVE-2026-113396

Severity:

HIGH RISK

(7.4)

OS Command Injection (CWE-77) in DrayTek Vigor2960

CVE-2026-113396

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-74, CWE-77

Impact:

Remote Code Execution

Severity:

HIGH RISK

(7.4)

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 command injection vulnerability in the DrayTek Vigor2960 Rename Table Handler allows attacker-controlled input in the newtable argument to influence command execution. Because the affected CGI function can be reached remotely, a network-accessible device may be at risk when requests reach the vulnerable handler.

A command injection vulnerability in the DrayTek Vigor2960 Rename Table Handler allows attacker-controlled input in the newtable argument to influence command execution. Because the affected CGI function can be reached remotely, a network-accessible device may be at risk when requests reach the vulnerable handler.

Affected context

The issue occurs in the rename_table function within /cgi-bin/mainfunction.cgi on affected Vigor2960 devices. Risk is higher when the management interface or CGI endpoint is reachable over a network and the handler processes the newtable parameter without sufficiently separating data from operating-system commands. The affected product is a legacy platform with limited maintainer support.

The issue occurs in the rename_table function within /cgi-bin/mainfunction.cgi on affected Vigor2960 devices. Risk is higher when the management interface or CGI endpoint is reachable over a network and the handler processes the newtable parameter without sufficiently separating data from operating-system commands. The affected product is a legacy platform with limited maintainer support.

Exploit preconditions

  • Attack surface: Network-accessible web or CGI management interface
  • Required access: Ability to send requests to the Rename Table Handler; the description does not establish whether authentication is required
  • Trigger point: Processing of the newtable argument by the rename_table function
  • Why exploitation is possible: Input reaches command-processing logic without adequate neutralization or strict validation, allowing command syntax to be interpreted by the underlying system
  • Attack surface: Network-accessible web or CGI management interface
  • Required access: Ability to send requests to the Rename Table Handler; the description does not establish whether authentication is required
  • Trigger point: Processing of the newtable argument by the rename_table function
  • Why exploitation is possible: Input reaches command-processing logic without adequate neutralization or strict validation, allowing command syntax to be interpreted by the underlying system

Why this happens

The vulnerability is caused by treating externally supplied table-name data as safe when it is incorporated into an operating-system command or command-like operation. Insufficient separation between data and executable command syntax allows special input to alter intended command behavior. This maps primarily to CWE-77: Improper Neutralization of Special Elements used in a Command, with CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component describing the broader injection pattern.

The vulnerability is caused by treating externally supplied table-name data as safe when it is incorporated into an operating-system command or command-like operation. Insufficient separation between data and executable command syntax allows special input to alter intended command behavior. This maps primarily to CWE-77: Improper Neutralization of Special Elements used in a Command, with CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component describing the broader injection pattern.

Potential impact

  • An attacker may execute commands with the privileges of the affected service
  • Device configuration or operational behavior could be altered
  • Sensitive information may be accessed or modified
  • The device could be used to attack other systems on reachable networks
  • Service availability could be disrupted
  • An attacker may execute commands with the privileges of the affected service
  • Device configuration or operational behavior could be altered
  • Sensitive information may be accessed or modified
  • The device could be used to attack other systems on reachable networks
  • Service availability could be disrupted

General mitigation guidance

Mitigation generally focuses on ensuring that table names remain data rather than executable command content.

Common defensive patterns include:

  • Avoiding shell invocation for administrative operations where direct APIs or system calls are available
  • Applying strict allowlist validation for table-name formats and permitted characters
  • Using argument-safe process APIs with fixed command structures when external processes are unavoidable
  • Limiting management interfaces to trusted networks and authenticated administrative channels
  • Running management services with the minimum privileges required
  • Applying vendor-maintained security fixes and retiring unsupported deployments where practical
  • Monitoring and restricting outbound access from network appliances

Mitigation generally focuses on ensuring that table names remain data rather than executable command content.

Common defensive patterns include:

  • Avoiding shell invocation for administrative operations where direct APIs or system calls are available
  • Applying strict allowlist validation for table-name formats and permitted characters
  • Using argument-safe process APIs with fixed command structures when external processes are unavoidable
  • Limiting management interfaces to trusted networks and authenticated administrative channels
  • Running management services with the minimum privileges required
  • Applying vendor-maintained security fixes and retiring unsupported deployments where practical
  • Monitoring and restricting outbound access from network appliances

How teams detect issues like this

Organizations commonly look for command-injection risks through:

  • Static analysis rules identifying shell execution, command construction, or process-spawning APIs that receive request parameters
  • Code review checks for string concatenation or interpolation involving CGI arguments
  • Tests using boundary and metacharacter inputs in isolated environments to verify that values remain data
  • Web application firewall and gateway policies that restrict unexpected command-like characters in administrative parameters
  • Network monitoring for unusual management requests, command execution indicators, or unexpected outbound connections
  • Automated security review tools that flag tainted data flowing from HTTP handlers into operating-system interfaces

Organizations commonly look for command-injection risks through:

  • Static analysis rules identifying shell execution, command construction, or process-spawning APIs that receive request parameters
  • Code review checks for string concatenation or interpolation involving CGI arguments
  • Tests using boundary and metacharacter inputs in isolated environments to verify that values remain data
  • Web application firewall and gateway policies that restrict unexpected command-like characters in administrative parameters
  • Network monitoring for unusual management requests, command execution indicators, or unexpected outbound connections
  • Automated security review tools that flag tainted data flowing from HTTP handlers into operating-system interfaces

Sources

SourceLink
fw.draytek.com.twfw.draytek.com.tw/Vigor2960/Firmware/v1.5.1.7/Vigor2960_v1.5.1.7.zip
github.comgithub.com/yikesoftware/DrayTek_Vigor2960_Security_Analysis/tree/main/cases/DRV2960-0013-authenticated-rename-table-command-injection
vuldb.comvuldb.com/cve/CVE-2026-113396
vuldb.comvuldb.com/submit/992249
vuldb.comvuldb.com/vuln/422672
vuldb.comvuldb.com/vuln/422672/cti

Frequently asked

questions

Yes, the affected handler can be reached remotely when the relevant management or CGI interface is network-accessible. The practical scope depends on exposure and access controls.

The provided description does not specify an authentication requirement. Administrators should treat access to the handler and exposure of the management interface as important determining factors.

Prevent user-controlled values from reaching shell interpretation, enforce a strict allowlist for valid table names, and use direct argument-safe APIs instead of constructed shell commands.

Apply least privilege, isolate management interfaces, review data flows from request parameters to process execution, and enforce static-analysis and security-testing policies for command construction.

Yes, the affected handler can be reached remotely when the relevant management or CGI interface is network-accessible. The practical scope depends on exposure and access controls.

The provided description does not specify an authentication requirement. Administrators should treat access to the handler and exposure of the management interface as important determining factors.

Prevent user-controlled values from reaching shell interpretation, enforce a strict allowlist for valid table names, and use direct argument-safe APIs instead of constructed shell commands.

Apply least privilege, isolate management interfaces, review data flows from request parameters to process execution, and enforce static-analysis and security-testing policies for command construction.

Find out what's already
exploitable in your codebase.