MAL-2026-14220 Malicious code in solidity-hold (npm)
Malicious package
Published
MAL-2026-14220 is a malicious package: solidity-hold (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-14220/ (Markdown: https://insights.sbomify.com/MAL-2026-14220/index.md)
- Package
- solidity-hold
- Registry
- npm
What is MAL-2026-14220?
MAL-2026-14220 is a malicious package in solidity-hold, published on 19 Aug 2026.
Official description
The npm package [email protected] impersonates the popular pino logger: the README badges and lib/ source tree are copied from pino (pinojs/pino), but lib/config.js is replaced with a ~4 MB obfuscator.io-obfuscated bundle (hex string-array, rotating while(!![]) decoder IIFE, control-flow flattening, ~23,890-entry string array). index.js requires('./lib/config') at top level, so this opaque payload executes on any require('solidity-hold'). The advertised middleware export is a no-op stub, and the package declares an axios dependency (network egress capability) that a logger does not need. Publisher metadata (author Jackson Blau <[email protected]>, bugs URL jsonspack.com/issues) is unrelated to the pino project whose code and branding are copied. Heavy control-flow obfuscation of an auto-executing module inside a package that impersonates a widely used dependency is a payload-carrier shape hostile to any installer that requires the module.
What should I do about MAL-2026-14220?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.