MAL-2026-13401 Malicious code in helmet-pro (npm)
Malicious package
Published
MAL-2026-13401 is a malicious package: helmet-pro (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-13401/ (Markdown: https://insights.sbomify.com/MAL-2026-13401/index.md)
- Package
- helmet-pro
- Registry
- npm
What is MAL-2026-13401?
MAL-2026-13401 is a malicious package in helmet-pro, published on 6 Aug 2026.
Official description
[email protected] is a typosquat of the popular helmet HTTP-header middleware. Its package.json postinstall hook runs lib/utils/index.js, which spawns lib/utils/smtp-connection/index.js as a detached child with all stdio silenced. That file is string-array/hex-name obfuscated and, when decoded, performs an axios.get against https://api.jsonbin.io/v3/b/6a719632da38895dfeb7128d and passes the returned record.message to new Function('require',…)(require). The result is arbitrary remote code execution on the installer's machine at npm install time, with require available to the fetched payload. The jsonbin.io record is attacker-mutable, so the executed payload can change at any time without republishing the package. The package also masquerades in metadata/comments as a nodemailer-adjacent SMTP module to disguise the dropper.
What should I do about MAL-2026-13401?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.