/

CVE-2026-106056

Severity:

HIGH RISK

(7.5)

OS Command Injection (CWE-78) in Rundeck Windows Nodes

CVE-2026-106056

Awaiting Analysis

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Arbitrary Command Execution

Severity:

HIGH RISK

(7.5)

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 high-severity OS command injection vulnerability in Rundeck allows authenticated users with permission to run jobs to execute unintended commands on Windows nodes. The issue becomes risky when crafted free-text job options are passed through ineffective argument quoting and interpreted by the Windows command shell.

A high-severity OS command injection vulnerability in Rundeck allows authenticated users with permission to run jobs to execute unintended commands on Windows nodes. The issue becomes risky when crafted free-text job options are passed through ineffective argument quoting and interpreted by the Windows command shell.

Affected context

The vulnerability affects Rundeck deployments before version 6.2.0 when:

  • Jobs run on Windows nodes
  • Authenticated users can execute jobs
  • Job options accept user-controlled free-text values
  • Those values are incorporated into commands executed by the node executor

The risk depends on the permissions of the Rundeck job runner and the credentials available on the target node.

The vulnerability affects Rundeck deployments before version 6.2.0 when:

  • Jobs run on Windows nodes
  • Authenticated users can execute jobs
  • Job options accept user-controlled free-text values
  • Those values are incorporated into commands executed by the node executor

The risk depends on the permissions of the Rundeck job runner and the credentials available on the target node.

Exploit preconditions

  • Attack surface: Rundeck job execution targeting Windows nodes
  • Required access: An authenticated account with permission to run the affected job
  • Trigger point: Processing a crafted value supplied through a free-text job option
  • Why exploitation is possible: Windows command metacharacters can escape ineffective single-quote handling and be interpreted by cmd.exe
  • Privilege context: Injected commands execute with the node executor's credentials
  • Attack surface: Rundeck job execution targeting Windows nodes
  • Required access: An authenticated account with permission to run the affected job
  • Trigger point: Processing a crafted value supplied through a free-text job option
  • Why exploitation is possible: Windows command metacharacters can escape ineffective single-quote handling and be interpreted by cmd.exe
  • Privilege context: Injected commands execute with the node executor's credentials

Why this happens

The underlying flaw is improper neutralization of special elements used in an operating system command. User-controlled option values are passed into Windows command execution, while CLIUtils.quoteWindowsCMDArg uses quoting that does not reliably prevent cmd.exe metacharacter interpretation.

This maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection. The insecure pattern occurs when application data is combined with shell commands without using an execution model that separates arguments from command syntax.

The underlying flaw is improper neutralization of special elements used in an operating system command. User-controlled option values are passed into Windows command execution, while CLIUtils.quoteWindowsCMDArg uses quoting that does not reliably prevent cmd.exe metacharacter interpretation.

This maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection. The insecure pattern occurs when application data is combined with shell commands without using an execution model that separates arguments from command syntax.

Potential impact

  • An attacker may execute arbitrary commands on Windows nodes
  • Commands could run with the node executor's privileges
  • Sensitive files, credentials, or environment data could be accessed
  • Job results and managed workloads could be modified or disrupted
  • Compromised nodes could be used for lateral movement or persistence
  • An attacker may execute arbitrary commands on Windows nodes
  • Commands could run with the node executor's privileges
  • Sensitive files, credentials, or environment data could be accessed
  • Job results and managed workloads could be modified or disrupted
  • Compromised nodes could be used for lateral movement or persistence

General mitigation guidance

Mitigation generally focuses on preventing user-controlled values from becoming shell syntax.

Common defensive patterns include:

  • Prefer direct process execution APIs that pass arguments separately instead of invoking a shell
  • Apply strict allowlists and typed schemas for job options rather than accepting unrestricted free text
  • Use Windows-specific argument handling that correctly accounts for cmd.exe parsing rules
  • Reduce trust in job options by validating and normalizing values before command construction
  • Run node executors with the least privileges required for their jobs
  • Restrict which users and projects can run jobs on sensitive Windows nodes
  • Avoid placing secrets or broad administrative credentials in node execution contexts

Mitigation generally focuses on preventing user-controlled values from becoming shell syntax.

Common defensive patterns include:

  • Prefer direct process execution APIs that pass arguments separately instead of invoking a shell
  • Apply strict allowlists and typed schemas for job options rather than accepting unrestricted free text
  • Use Windows-specific argument handling that correctly accounts for cmd.exe parsing rules
  • Reduce trust in job options by validating and normalizing values before command construction
  • Run node executors with the least privileges required for their jobs
  • Restrict which users and projects can run jobs on sensitive Windows nodes
  • Avoid placing secrets or broad administrative credentials in node execution contexts

How teams detect issues like this

Organizations can look for this weakness through:

  • Static analysis rules that identify shell invocation combined with user-controlled values
  • Code review checks for string concatenation or interpolation in Windows command construction
  • Tests covering command metacharacters and platform-specific quoting behavior
  • Policy enforcement requiring direct process APIs and typed option definitions
  • Runtime monitoring for unexpected child processes, command interpreters, or unusual job activity on Windows nodes
  • Audit review of job permissions, option definitions, and executor credentials

Automated code review and security scanning tools may help identify command construction paths, but platform-specific validation remains important.

Organizations can look for this weakness through:

  • Static analysis rules that identify shell invocation combined with user-controlled values
  • Code review checks for string concatenation or interpolation in Windows command construction
  • Tests covering command metacharacters and platform-specific quoting behavior
  • Policy enforcement requiring direct process APIs and typed option definitions
  • Runtime monitoring for unexpected child processes, command interpreters, or unusual job activity on Windows nodes
  • Audit review of job permissions, option definitions, and executor credentials

Automated code review and security scanning tools may help identify command construction paths, but platform-specific validation remains important.

Sources

SourceLink
github.comgithub.com/rundeck/rundeck
github.comgithub.com/rundeck/rundeck/blob/v6.1.0/core/src/main/java/com/dtolabs/rundeck/core/cli/CLIUtils.java#L146-L158
github.comgithub.com/rundeck/rundeck/commit/807d9cf0eef63669b342e02e05a740e97f84f013
github.comgithub.com/rundeck/rundeck/pull/10414
github.comgithub.com/rundeck/rundeck/releases/tag/v6.2.0
vulncheck.comvulncheck.com/advisories/rundeck-before-6.2.0-os-command-injection-via-windows-job-option-quoting

Frequently asked

questions

It may be exploitable through Rundeck's job execution interface when an attacker can authenticate and run a job targeting a vulnerable Windows node. It is not necessarily reachable by an unauthenticated internet user.

The attacker generally needs a valid Rundeck account with permission to run an affected job and the ability to provide or influence its free-text option values.

Avoid shell-based command construction where possible. Use direct process execution with separately supplied arguments, strict option validation, and quoting or escaping designed for the exact Windows execution context.

Treat job options as untrusted input, use allowlisted and typed values, test platform-specific command parsing, limit executor privileges, and regularly review job permissions and command execution logs.

It may be exploitable through Rundeck's job execution interface when an attacker can authenticate and run a job targeting a vulnerable Windows node. It is not necessarily reachable by an unauthenticated internet user.

The attacker generally needs a valid Rundeck account with permission to run an affected job and the ability to provide or influence its free-text option values.

Avoid shell-based command construction where possible. Use direct process execution with separately supplied arguments, strict option validation, and quoting or escaping designed for the exact Windows execution context.

Treat job options as untrusted input, use allowlisted and typed values, test platform-specific command parsing, limit executor privileges, and regularly review job permissions and command execution logs.

Find out what's already
exploitable in your codebase.