OpenSSF/OSV advisory MAL-2026-13734 confirms this npm version as malicious. Package name typosquats the legitimate @aerodrome-finance scope. Lifecycle hooks auto-execute index.js on npm install, which reads installer secrets from ~/.aws/, ~/.ssh/, ~/.kube/, ~/.docker/, ~/.netrc, ~/.npmrc, ~/.pypirc, ~/.git-credentials, gcloud/solana/anchor/sui key directories, Foundry keystores, and.env files, and scrapes process.env for keys matching...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in @aerodrome-finance/contracts (npm)
Details
Package name typosquats the legitimate @aerodrome-finance scope. Lifecycle hooks auto-execute index.js on npm install, which reads installer secrets from ~/.aws/, ~/.ssh/, ~/.kube/, ~/.docker/, ~/.netrc, ~/.npmrc, ~/.pypirc, ~/.git-credentials, gcloud/solana/anchor/sui key directories, Foundry keystores, and.env files, and scrapes process.env for keys matching KEY|TOKEN|SECRET|PASS|PRIVATE|MNEMONIC|AWS|GITHUB|NPM|WALLET|SEED. The collected data is POSTed to a hardcoded webhook.site endpoint via https.request from a detached child process (spawn(process.execPath, ['-e', src], {detached:true, stdio:'ignore'})) that sleeps 60-240 seconds before sending, to outlive install and scan windows. Sandbox/honeypot evasion is present: host regex checks for scan-/detonation/sandbox/ubuntu-fc-uvm prefixes, non-root/sandbox user checks, canarytoken/honey env checks, and a check for npm mirror registries. Static evidence confirms co-use of child_process, https, os, and fs, with os.hostname() and a POST to https.request in index.js.
Decision reason
OpenSSF Malicious Packages via OSV confirms @aerodrome-finance/contracts@1.1.1 as malicious (MAL-2026-13734): Malicious code in @aerodrome-finance/contracts (npm)