MAL-2026-18323 Malicious code in publish-poc-base (npm)
Malicious package
Published
MAL-2026-18323 is a malicious package: publish-poc-base (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-18323/ (Markdown: https://insights.sbomify.com/MAL-2026-18323/index.md)
- Package
- publish-poc-base
- Registry
- npm
What is MAL-2026-18323?
MAL-2026-18323 is a malicious package in publish-poc-base, published on 26 Oct 2026.
Official description
On install, the postinstall script in package.json reads the first line of../../README.md from the installer's parent workspace, creates a mktemp directory, writes a generated package.json named publish-poc-found-<rand> using that README content as its description, and writes an.npmrc containing a hardcoded npm registry _authToken (prefix npm_DLcrGeNT…) pointing at //registry.npmjs.org/. The staged directory is removed with rm -rf before any publish or network call fires, so this version does not itself execute the publish step, but the shipped token is distributed in cleartext to every installer and the staging logic is a working template for auto-publishing packages under the token owner's identity using data harvested from the installer's workspace. The combination of a live third-party-usable publish credential distributed to all installers plus install-time reads of files outside the package directory raises installer-impacting supply-chain concerns beyond author self-harm: any installer receives the token, and any installer's local README content is read at install time.
What should I do about MAL-2026-18323?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.