CVE-2026-59960: @argos-ci/core: CI Branch Name OS Command Injection
@argos-ci/core@6.2.0 passes attacker-controlled CI branch/ref strings directly into an execSync() template literal in packages/core/src/ci-environment/git.ts:89. When a CI project has hasRemoteContentAccess: false, the Argos upload flow calls getMergeBaseCommitSha(), which invokes gitFetch() with the unsanitized branch name. Because execSync() passes the command string to /bin/sh -c, shell metacharacters such as $() command substitution are evaluated before git runs, enabling an attacker who can influence the branch name (e.g., via a pull request) to execute arbitrary OS commands on the CI runner. CVSS Base Score: 7.5 (High).
References
- github.com/advisories/GHSA-4x45-gxvp-6283
- github.com/argos-ci/argos-javascript/commit/8355f3af3be3f4fe361d58a688d21535cf672717
- github.com/argos-ci/argos-javascript/releases/tag/@argos-ci/core@6.2.1
- github.com/argos-ci/argos-javascript/security/advisories/GHSA-4x45-gxvp-6283
- nvd.nist.gov/vuln/detail/CVE-2026-59960
Code Behaviors & Features
Detect and mitigate CVE-2026-59960 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →