/

CVE-2026-119288

Severity:

HIGH RISK

(7.0)

Command Injection (CWE-78) in Zuke Windows Builds

CVE-2026-119288

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Arbitrary Command Execution

Severity:

HIGH RISK

(7.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

Zuke prior to 1.51.0 can introduce command injection when Windows .cmd or .bat shims are launched through cmd /c using command lines assembled with C-runtime quoting rules. If attacker-influenced text contains unquoted shell metacharacters such as &, |, or ^, an attacker may execute an additional command in the build context and access available credentials.

Zuke prior to 1.51.0 can introduce command injection when Windows .cmd or .bat shims are launched through cmd /c using command lines assembled with C-runtime quoting rules. If attacker-influenced text contains unquoted shell metacharacters such as &, |, or ^, an attacker may execute an additional command in the build context and access available credentials.

Affected context

The issue occurs in Zuke's Windows-specific tool-launching path when a build resolves an executable shim from node_modules/.bin and incorporates attacker-influenced text into the command line. The risk depends on Windows shell interpretation, the use of .cmd or .bat shims, and the permissions and credentials available to the build process. POSIX platforms are not affected by this behavior.

The issue occurs in Zuke's Windows-specific tool-launching path when a build resolves an executable shim from node_modules/.bin and incorporates attacker-influenced text into the command line. The risk depends on Windows shell interpretation, the use of .cmd or .bat shims, and the permissions and credentials available to the build process. POSIX platforms are not affected by this behavior.

Exploit preconditions

  • Attack surface: Zuke build execution on Windows
  • Required access: Ability to influence text passed into a resolved tool invocation or build configuration
  • Trigger point: Launch of a resolved .cmd or .bat shim through cmd /c
  • Why exploitation is possible: C-runtime quoting does not reliably prevent cmd.exe from reparsing unquoted shell metacharacters, allowing command separators or control operators to alter execution
  • Attack surface: Zuke build execution on Windows
  • Required access: Ability to influence text passed into a resolved tool invocation or build configuration
  • Trigger point: Launch of a resolved .cmd or .bat shim through cmd /c
  • Why exploitation is possible: C-runtime quoting does not reliably prevent cmd.exe from reparsing unquoted shell metacharacters, allowing command separators or control operators to alter execution

Why this happens

The vulnerable pattern combines an indirectly executed Windows command interpreter with command-line construction rules that do not preserve argument boundaries through shell reparsing. When attacker-controlled text reaches the assembled command line, characters interpreted by cmd.exe may change the command structure and cause additional commands to run. This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, because untrusted input is allowed to influence shell command interpretation.

The vulnerable pattern combines an indirectly executed Windows command interpreter with command-line construction rules that do not preserve argument boundaries through shell reparsing. When attacker-controlled text reaches the assembled command line, characters interpreted by cmd.exe may change the command structure and cause additional commands to run. This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, because untrusted input is allowed to influence shell command interpretation.

Potential impact

  • An attacker could execute arbitrary commands in the build context.
  • Build credentials, tokens, or other environment secrets may be exposed.
  • Source code, generated artifacts, or dependencies could be modified.
  • CI runners or developer workstations could be compromised.
  • A compromised build may produce tampered or malicious release artifacts.
  • An attacker could execute arbitrary commands in the build context.
  • Build credentials, tokens, or other environment secrets may be exposed.
  • Source code, generated artifacts, or dependencies could be modified.
  • CI runners or developer workstations could be compromised.
  • A compromised build may produce tampered or malicious release artifacts.

General mitigation guidance

Mitigation generally focuses on avoiding shell interpretation and preserving arguments as structured data.

Common defensive patterns include:

  • Prefer direct process-spawn APIs that do not invoke cmd.exe when launching tools.
  • Resolve executables to trusted paths and treat tool-selection data as untrusted.
  • Apply strict allowlists and validation to values that can reach build command arguments.
  • Use argument-array interfaces rather than concatenated command strings.
  • Minimize build credentials and permissions, and isolate builds from sensitive resources.
  • Apply secure-by-default runner policies that restrict shell access and secret exposure.
  • Keep build dependencies and execution environments maintained through the organization's normal update process.

Mitigation generally focuses on avoiding shell interpretation and preserving arguments as structured data.

Common defensive patterns include:

  • Prefer direct process-spawn APIs that do not invoke cmd.exe when launching tools.
  • Resolve executables to trusted paths and treat tool-selection data as untrusted.
  • Apply strict allowlists and validation to values that can reach build command arguments.
  • Use argument-array interfaces rather than concatenated command strings.
  • Minimize build credentials and permissions, and isolate builds from sensitive resources.
  • Apply secure-by-default runner policies that restrict shell access and secret exposure.
  • Keep build dependencies and execution environments maintained through the organization's normal update process.

How teams detect issues like this

Detection can combine source analysis, review, and runtime policy controls:

  • Search for Windows process launches that prepend cmd /c or otherwise invoke shell interpreters.
  • Flag string concatenation or interpolation used to construct command lines from build inputs.
  • Review handling of .cmd and .bat shims, especially where arguments originate from configuration, dependencies, or generated metadata.
  • Use static analysis and automated code review rules for shell-command construction and missing argument separation.
  • Monitor build processes for unexpected child commands, shell metacharacters, or execution outside approved tool paths.
  • Enforce CI policies that limit shell invocation, credential scope, and network access for build jobs.

Detection can combine source analysis, review, and runtime policy controls:

  • Search for Windows process launches that prepend cmd /c or otherwise invoke shell interpreters.
  • Flag string concatenation or interpolation used to construct command lines from build inputs.
  • Review handling of .cmd and .bat shims, especially where arguments originate from configuration, dependencies, or generated metadata.
  • Use static analysis and automated code review rules for shell-command construction and missing argument separation.
  • Monitor build processes for unexpected child commands, shell metacharacters, or execution outside approved tool paths.
  • Enforce CI policies that limit shell invocation, credential scope, and network access for build jobs.

Sources

SourceLink
github.comgithub.com/zuke-build/zuke/commit/4257b0bc5ef5e387a44f913349646d4baccd1654
github.comgithub.com/zuke-build/zuke/pull/542
github.comgithub.com/zuke-build/zuke/releases/tag/core-v1.51.0
github.comgithub.com/zuke-build/zuke/security/advisories/GHSA-7h34-cmvx-hg95

Frequently asked

questions

It is not inherently a network-service vulnerability. Exploitation may occur when attacker-controlled project, dependency, or build-input data reaches a vulnerable Windows build invocation.

The attacker needs a way to influence text used in a tool launch, such as build configuration, generated input, or dependency-controlled data. The resulting commands run with the permissions of the build process.

Avoid invoking cmd.exe for tool execution and pass executable paths and arguments through structured process APIs that preserve argument boundaries.

Treat build inputs as untrusted, validate and constrain tool paths and arguments, minimize CI credentials, and use static analysis and policy checks to detect shell command construction.

It is not inherently a network-service vulnerability. Exploitation may occur when attacker-controlled project, dependency, or build-input data reaches a vulnerable Windows build invocation.

The attacker needs a way to influence text used in a tool launch, such as build configuration, generated input, or dependency-controlled data. The resulting commands run with the permissions of the build process.

Avoid invoking cmd.exe for tool execution and pass executable paths and arguments through structured process APIs that preserve argument boundaries.

Treat build inputs as untrusted, validate and constrain tool paths and arguments, minimize CI credentials, and use static analysis and policy checks to detect shell command construction.

Find out what's already
exploitable in your codebase.