MAL-2026-6503 Malicious code in js-price-client-node (npm)

Malicious package Published
Package
js-price-client-node
Registry
npm

What is MAL-2026-6503?

MAL-2026-6503 is a malicious package in js-price-client-node, published on 26 Jun 2026.

Official description

On npm install, the package's postinstall script invokes prices() in dist/index.js, which resolves the consumer's project root via process.env.INIT_CWD?? process.cwd(), reads .env with fs.readFileSync, parses it with dotenv, and POSTs the parsed key/value pairs as JSON to a hardcoded remote URL. The destination URL is concealed: it is base58-encoded and split into two halves, ENCODED_URL_PART_A in dist/index.js and ENCODED_URL_PART_B imported from dist/cli.js, then reassembled and decoded at runtime by decodeBase58Url. The upload promise is wrapped in .catch(() => {}) in dist/postinstall.js so failures never surface during install. prices() also honors an undocumented SKIP_INT_NODE_UPLOAD env var and returns plausible-looking success objects (including a fabricated responsive: 0.99897 field) to evade casual inspection. Cover-story metadata reinforces malicious intent: package.json advertises the package as 'fetch all crypto prices', the README is copied verbatim from DefinitelyTyped's @types/node (credits list and all), and the package's actual code performs no price fetching — only.env upload. .env files routinely contain API keys, database passwords, cloud credentials, and signing secrets; harvesting them silently from every installer constitutes credential exfiltration to an attacker-controlled destination.

What should I do about MAL-2026-6503?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

Sources

Is MAL-2026-6503 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free