MAL-2026-18184 Malicious code in formatting-subtitles (npm)
Malicious package
Published
MAL-2026-18184 is a malicious package: formatting-subtitles (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-18184/ (Markdown: https://insights.sbomify.com/MAL-2026-18184/index.md)
- Package
- formatting-subtitles
- Registry
- npm
What is MAL-2026-18184?
MAL-2026-18184 is a malicious package in formatting-subtitles, published on 22 Oct 2026.
Official description
package.json declares
preinstall: sh./prepare.js && exit 0. prepare.js is shaped like JavaScript (ending with console.log('hello world')) but is executed by /bin/sh, which does not treat /**... */ as a comment. Inside that block, sh evaluates two $(...) command substitutions: one issues a GET to the hardcoded collector https://webhook.site/9e8c8742-3102-4716-aa8b-e150e9e84fe7/stats_1, and the other downloads https://api.github.com/gists/da04f14c93acbe9a7aef827be0a2e91c, extracts a file via jq, writes it to disk as x, and runs it with sh x. On npm install, the installer host fetches and executes arbitrary, unpinned, attacker-controlled content from a mutable GitHub Gist, and the webhook.site beacon discloses the install (and curl-visible metadata such as public IP and user-agent) to the attacker. The JS-comment-wrapping of the shell payload is a deliberate cover story so prepare.js reads as a trivial hello-world when viewed as JavaScript.What should I do about MAL-2026-18184?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.