Meet Corgea at Black Hat, BSides Las Vegas & DEF CON
CRITICAL npm Malware

Malicious code in ts-biginteger-lib (npm)

MAL-2026-6316 · GHSA-6v6m-rhh8-ww9v

Published · Modified

Description


__

Source: amazon-inspector (b8059a1d2db2edb7231b017023f82f6a651585c0ee7120aaebe882cb6407b9e3)

Package is published as 'ts-biginteger-lib' but its metadata, README, and source are a wholesale copy of big.js by MikeMcl (author set to 'Michael Mclaughlin M8ch88l@gmail.com', repository pointing at MikeMcl/big.js, README unchanged). Inserted into the otherwise-verbatim big.js source at big.js:605-609 is a try/catch that, at module load time, calls require("ts-lint-builders") and invokes doc.from_str().then(...).catch(...). package.json additionally declares "ts-linter-builders": "latest" as a runtime dependency. The legitimate big.js declares no runtime dependencies; these injected loads execute arbitrary code from separately-published, attacker-controlled packages every time a consumer require()s or imports ts-biginteger-lib. The unpinned latest specifier lets the publisher rotate the payload at any time without modifying this package. The combination of brand impersonation (to attract installers searching for a TypeScript big-integer library) and require-time execution of an external, version-floating dependency is a supply-chain dropper.

Source: ghsa-malware (a5772f3e0be010d52a12744bb7d7bf49559bb64a67e58ad83af6dfc078174add)

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Ready to move

Start Securing

Free, no credit card | First findings in minutes