CVE-2025-59046 — Vulnerability in interactive-git-checkout — CVE...
CRITICAL
interactive-git-checkout has a Command Injection vulnerability
Published September 10, 2025Updated September 10, 2026Source: osv
Summary
The npm package `interactive-git-checkout` is an interactive command-line tool that allows users to checkout a git branch while it prompts for the branch name on the command-line. It is available as an npm package and can be installed via `npm install -g interactive-git-checkout`.
Resources:
* Project's npm package: https://www.npmjs.com/package/interactive-git-checkout
## Command Injection Vulnerability
The `interactive-git-checkout` tool is vulnerable to a command injection vulnerability because it passes the branch name to the `git checkout` command using the Node.js child process module's `exec()` function without proper input validation or sanitization.
The following vulnerable code snippets demonstrates the issue:
```js
const { exec: execCb } = require('child_process');
const { promisify } = require('util');
const exec = promisify(execCb);
module.exports = async (targetBranch) => {
const { stdout, stderr } = await exec(`git checkout ${targetBranch}`);
process.stderr.write(stderr);
process.stdout.write(stdout);
};
```
## Exploit Proof of Concept
1. Install the `interactive-git-checkout` package (as suggested by the package's README):
```bash
npm install --global interactive-git-checkout
```
2. Run the executable exposed by the installed package:
```bash
$ igc
```
3. When prompted, enter the following branch name:
```bash
hello ; echo 'Command Injection Vulnerability Exploited!' > /tmp/command-injection.txt; #
```
## Vulnerable versions
All versions of interactive-git-checkout are vulnerable to this issue, up to and including to the latest version of `1.1.4`.
# Author
Liran Tal
Advisory Timeline
- First published September 10, 2025 (397 days ago).
- Last revised September 10, 2026 — 364 days after initial publication.
Affected Packages (1)
Affects 1 ecosystem: npm (1).
| Package | Ecosystem | Affected | Fixed In |
|---|---|---|---|
| interactive-git-checkout | npm | All versions | Range-based data available |
Vulnerability Classification
Common Weakness Enumeration (CWE) identifiers for this vulnerability type.
- CWE-77
CVSS Score Breakdown
What the CVSS (Common Vulnerability Scoring System) 9.8 score means for each attack dimension.
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
References
- https://github.com/ninofiliu/interactive-git-checkout/security/advisories/GHSA-4wcm-7hjf-6xw5WEB
- https://nvd.nist.gov/vuln/detail/CVE-2025-59046ADVISORY
- https://github.com/ninofiliu/interactive-git-checkout/commit/8dd832dd302af287a61611f4f85e157cd1c6bb41WEB
- https://github.com/ninofiliu/interactive-git-checkoutPACKAGE
Frequently Asked Questions
- What is CVE-2025-59046?
- interactive-git-checkout has a Command Injection vulnerability This vulnerability has been assigned a severity rating of CRITICAL (CVSS score: 9.8/10).
- How do I check if my project is affected by CVE-2025-59046?
- CVE-2025-59046 affects interactive-git-checkout. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2025-59046 and 200,000+ other known vulnerabilities.
Severity & Exploitability
CVSS Score
9.8
Exploitation is straightforward and causes maximum impact. Patch immediately.
Also Known As
GHSA-4wcm-7hjf-6xw5
Related CVEs
- CVE-2026-107722CRITICAL
fast-jwt: Incomplete patch of CVE-2026-34950: Non-whitespace key-prefix re-enables RSA→HS256 algorithm confusion
- CVE-2026-108261CRITICAL
TinaCMS admin preview iframe loads an attacker-controlled origin from the URL fragment
Check if you're affected
Scan your dependencies to see if this vulnerability affects your projects.
Scan Your Dependencies