CVE-2026-59960 Argos JavaScript: CI Branch Name OS Command Injection in @argos-ci/core
Attackers can execute arbitrary commands on CI runners via shell metacharacters in branch names, potentially exposing secrets or compromising the build environment.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-59960?
CVE-2026-59960 is a high-severity command injection vulnerability in argos-ci argos-javascript, published on 14 Sep 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Argos JavaScript provides official Argos SDKs for JavaScript. Prior to Argos core package version 6.2.1, attacker-controlled CI branch or ref values from GITHUB_HEAD_REF or ARGOS_BRANCH can flow through config.branch and getMergeBaseCommitSha() when hasRemoteContentAccess is false. The gitFetch() and gitMergeBase() functions in packages/core/src/ci-environment/git.ts interpolate these values into execSync() command strings executed by /bin/sh -c, so shell metacharacters in a pull-request branch name can execute arbitrary commands with the Argos upload process privileges on the CI runner. Successful exploitation can expose CI secrets, alter build artifacts, or compromise the runner. This issue is fixed in Argos core package version 6.2.1.
Weakness: CWE-78
Which versions are affected by CVE-2026-59960?
2 open source packages ship an affected version, including @argos-ci/core.
| Package | Affected | Fixed in |
|---|---|---|
@argos-ci/core npm | All versions | 6.2.1 |
@argos-ci/core npm | All versions | 6.2.1 |
How do I fix CVE-2026-59960?
Upgrade @argos-ci/core to 6.2.1 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2026-59960 being exploited?
There is no known exploitation of CVE-2026-59960 in the wild and no public exploit code.
Sources
Also known as GHSA-4x45-gxvp-6283.