Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2023-37478_npm_vs_pnpm — CVE-2023-37478 showcases how a difference in npm and pnpm install packages that could be exploited by a well crafted tar.gz packge. This repo shows a demo. | Kitploit
Tools/GitHubGitHub/trevorgkann/cve-2023-37478_npm_vs_pnpm
Vulnerability AnalysisExploitationWeb SecuritySupply Chain SecurityLearning & EducationLabs & Practice
GitHubtrevorgkann/cve-2023-37478_npm_vs_pnpm

CVE-2023-37478_npm_vs_pnpm

CVE-2023-37478 showcases how a difference in npm and pnpm install packages that could be exploited by a well crafted tar.gz packge. This repo shows a demo.

View Repository
52 years agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

pnpm vs npm exploit

This repo showcases how a difference in npm and pnpminstallation from tarballs can be exploited. The exploit is recorded in CVE-2023-37478.

The javascript package constructed here claims it prints out a nice message to the user. When installed with npm, this is true. However, the same package can be installed with pnpm and it will print out a mean message. One could imagine how this could be more maliciously exploited.

You can find an old, vulnerable version of pnpm here that works with this exploit. This is fixed in newer versions of pnpm and the fix can be seen here

How to use this Repo

exploitative_package_src has the source for the package definitely_benign_package. The folder bad_version (V0.1) contains malicious code, and good_version (V0.2) contains good code. make_tar.sh builds the tar package such that the bad version is added to the tarbal before the good version.

For a demo, move/clone the compiled definitely_benign_package.tgz into /use_demonstration/ and install via npm or pnpm, this can be shortcut with make pnpm/npm (make clean also works once you're done). Once it's installed, run the words of affirmation script with node words_of_affirmation.js.

Download Tool