1 Malicious Look-alike Package Names
Typosquatting publishes packages with names very similar to popular, legitimate packages. Developers who mistype the package name install the malicious version instead.
Real typosquatting examples:
colourama(instead ofcolorama) — malicious, steals crypto walletscrpyto(instead ofcrypto) — typo in a common packagecross-env2(instead ofcross-env) — extra charactertwitch-authenticator(instead oftwitch-auth) — variationnode-opencv,opencf— variations on popular packages
What typosquatting packages do:
// Malicious package install script (package.json)
"scripts": {
"preinstall": "node steal.js" // Runs automatically on npm install!
}
// steal.js exfiltrates:
// - SSH keys (~/.ssh/)
// - Environment variables (process.env)
// - npm auth tokens (~/.npmrc)
// - Git credentials
// - Cryptocurrency walletsThe npm preinstall hook runs with the developer's full OS permissions — on a developer machine, this means access to source code, credentials, and internal network access.