MAL-2026-14346 Malicious code in @next-fonts/font (npm)
Malicious package
Published
MAL-2026-14346 is a malicious package: @next-fonts/font (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-14346/ (Markdown: https://insights.sbomify.com/MAL-2026-14346/index.md)
- Package
- @next-fonts/font
- Registry
- npm
What is MAL-2026-14346?
MAL-2026-14346 is a malicious package in @next-fonts/font, published on 21 Aug 2026.
Official description
@next-fonts/font is a typosquat of Next.js's @next/font. Its exported Inter() function (mimicking next/font/google) decodes a base64 blob via atob(), then executes it through spawn('node','-e', code) with an eval(code) fallback. The decoded payload uses on-chain data as a C2 channel: it queries api.trongrid.io or fullnode.mainnet.aptoslabs.com for a transaction tied to hardcoded wallet addresses, retrieves that transaction's input data from BSC RPC endpoints (bsc-dataseed.binance.org, bsc-rpc.publicnode.com) via eth_getTransactionByHash, XOR-decrypts the returned bytes, and evals the resulting JavaScript. The result is arbitrary attacker-controlled code execution on any Node process that imports the package and invokes Inter(), with no relation to font functionality. Obfuscation (base64-hidden payload, node -e detached spawn with eval fallback, blockchain-mediated fetch) conceals the downloader from casual inspection.
What should I do about MAL-2026-14346?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.