VDB
Sign up
HIGH

GHSA-36p8-mvp6-cv38

Wrangler affected by OS Command Injection in `wrangler pages deploy`

Quick fix

GHSA-36p8-mvp6-cv38 — wrangler: upgrade to the fixed version with the command below.

npm install wrangler@3.114.17

Details

**Summary**

A command injection vulnerability (CWE-78) has been found to exist in the `wrangler pages deploy` command. The issue occurs because the `--commit-hash` parameter is passed directly to a shell command without proper validation or sanitization, allowing an attacker with control of `--commit-hash` to execute arbitrary commands on the system running Wrangler.

**Root cause**

The `commitHash` variable, derived from user input via the `--commit-hash` CLI argument, is interpolated directly into a shell command using template literals (e.g., ``execSync(`git show -s --format=%B ${commitHash}`)``). Shell metacharacters are interpreted by the shell, enabling command execution.

**Impact**

This vulnerability is generally hard to exploit, as it requires `--commit-hash` to be attacker controlled. The vulnerability primarily affects CI/CD environments where `wrangler pages deploy` is used in automated pipelines and the `--commit-hash` parameter is populated from external, potentially untrusted sources. An attacker could exploit this to:

- Run any shell command. - Exfiltrate environment variables. - Compromise the CI runner to install backdoors or modify build artifacts.

**Mitigation**

- Wrangler v4 users are requested to upgrade to Wrangler v4.59.1 or higher. - Wrangler v3 users are requested to upgrade to Wrangler v3.114.17 or higher. - Users on Wrangler v2 (EOL) should upgrade to a supported major version.

**Credits**

Disclosed responsibly by kny4hacker.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/wrangler
Introduced in: 2.0.15Fixed in: 3.114.17
Fixnpm install wrangler@3.114.17
npm/wrangler
Introduced in: 4.0.0Fixed in: 4.59.1
Fixnpm install wrangler@4.59.1

References