Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Local vector because attacker pre-plants symlinks in a repo; UI:R for mandatory developer CLI invocation; C:L for world-readable credential exposure; I:H for arbitrary file overwrite.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
Capgo CLI before 12.128.2 contains arbitrary file overwrite vulnerabilities in login and build credentials operations that follow symlinks without validation. Attackers can create malicious symlinks in repositories to overwrite arbitrary files or expose credentials with world-readable permissions when developers run the CLI.
AnalysisAI
Symlink-following vulnerabilities in Capgo CLI before version 12.128.2 (npm @capgo/cli < 7.84.6) allow an attacker who controls a repository to overwrite arbitrary files on a developer's machine and expose sensitive signing credentials when the developer runs CLI login or build credential operations inside that repository. Three distinct issues are present: unsafe writeFileSync on .capgo and .capgo-credentials.json without symlink validation, and global credential files written with world-readable 664 permissions instead of the required 0600. A proof-of-concept demonstrating the .capgo clobber is publicly documented in the GitHub Security Advisory GHSA-8mpm-q7mh-8fvh. No CISA KEV listing exists at time of analysis, but exploitability is straightforward given the PoC and low attack complexity.
Technical ContextAI
Capgo CLI (cpe:2.3:a:capgo:cli:*:*:*:*:*:*:*:*) is an npm-distributed command-line tool for the Capgo Capacitor live-update platform. The root cause is CWE-59 (Improper Link Resolution Before File Access - Link Following): the CLI performs writeFileSync() and writeFile() operations on filenames relative to the current working directory (.capgo, .capgo-credentials.json) without first checking whether those paths resolve through a symbolic link. Issue 1 is in src/login.ts, which writes the API key before validating it with verifyUser(), meaning symlink exploitation succeeds even on failed authentication. Issue 2 is in src/build/credentials.ts, which writes credential JSON without any symlink guard and without requiring the user to be authenticated. Issue 3 is also in src/build/credentials.ts: the global path at $HOME/.capgo-credentials/credentials.json is created with default umask-derived 664 permissions rather than the hardened 0600, exposing Android keystore data, Play Store configuration, and iOS signing certificates on multi-user or CI systems.
RemediationAI
The primary fix is to upgrade @capgo/cli to version 7.84.6 or later via npm (npm install -g @capgo/cli@7.84.6 or equivalent). The upstream patch is available at https://github.com/Cap-go/CLI/commit/b8aa5ccbfad2d7f10f3cdbc00910d4a6aab026b2 and the vendor advisory is at https://github.com/Cap-go/capgo/security/advisories/GHSA-8mpm-q7mh-8fvh. If an immediate upgrade is not possible, avoid running any capgo login --local or capgo build credentials save --local commands inside repositories you do not fully control or that originate from untrusted contributors - this eliminates the primary trigger condition. As a compensating control for the permissions issue (Issue 3), manually chmod 600 $HOME/.capgo-credentials/credentials.json and chmod 700 $HOME/.capgo-credentials/ after each credentials write. On CI systems, isolate the runner user and ensure credential directories are not world- or group-readable as a baseline hardening measure. Note that these workarounds do not address the underlying symlink-following flaw and should only be used as a bridge to patching.
Snyk CLI before 1.996.0 allows arbitrary command execution, affecting Snyk IDE plugins and the snyk npm package. Rated h
The GitHub CLI version 2.6.1 and earlier are vulnerable to remote code execution through a malicious codespace SSH serve
go-gh is a Go module for interacting with the `gh` utility and the GitHub API from the command line. Rated high severity
Command execution via URI injection in GitHub CLI's `gh codespace jupyter` subcommand (versions 2.10.0-2.95.0) allows an
The CLI in Cisco IOS XR allows remote authenticated users to obtain sensitive information via unspecified commands, aka
Terminal escape sequence injection in GitHub CLI 1.6.0 through 2.91.x allows authenticated attackers with pull request c
go-gh is a collection of Go modules to make authoring GitHub CLI extensions easier. Rated low severity (CVSS 2.6), this
Same weakness CWE-59 – Improper Link Resolution Before File Access
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38165
GHSA-4ch8-prch-6prf