MAL-2026-13957 Malicious code in postcss-initialize-plugin (npm)
Malicious package
Published
MAL-2026-13957 is a malicious package: postcss-initialize-plugin (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-13957/ (Markdown: https://insights.sbomify.com/MAL-2026-13957/index.md)
- Package
- postcss-initialize-plugin
- Registry
- npm
What is MAL-2026-13957?
MAL-2026-13957 is a malicious package in postcss-initialize-plugin, published on 13 Aug 2026.
Official description
postcss-initialize-plugin is a typosquat of postcss-initial. Its README, repository URL, and author metadata are copied verbatim from maximkoretskiy/postcss-initial, and the legitimate plugin source is present, but index.js has an appended obfuscator.io payload (rotating string array _0x240a, control-flow flattening) that runs on require. Deobfuscation recovers imports of http, https, zlib, and child_process, along with a hardcoded list of Ethereum RPC endpoints (eth.drpc.org, ethereum-rpc.publicnode.com, 1rpc.io/eth, blastapi.io, plus process.env.ETH_RPC_URL) and Etherscan-style txlist query parameters for a hardcoded address beginning 0xa322E5f3. On load the payload queries these endpoints for transaction data tied to that address, decompresses the returned bytes with zlib (gzip/deflate/br), stashes require and module on global, and passes the decoded content to child_process.spawn — giving the operator of that Ethereum address arbitrary code execution on any machine that installs or requires this package. A legitimate PostCSS plugin has no reason to contact Ethereum RPCs, spawn child processes, or bury its logic behind a string-array decoder.
What should I do about MAL-2026-13957?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.