MAL-2026-14224 Malicious code in streak-metric-test (npm)
Malicious package
Published
MAL-2026-14224 is a malicious package: streak-metric-test (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-14224/ (Markdown: https://insights.sbomify.com/MAL-2026-14224/index.md)
- Package
- streak-metric-test
- Registry
- npm
What is MAL-2026-14224?
MAL-2026-14224 is a malicious package in streak-metric-test, published on 19 Aug 2026.
Official description
[email protected] ships a fully wired dropper that fires on
import/require of the package root. The top-level async IIFE in dist/index.mjs assembles a Buffer from a base64 string array, writes it to ~/.cache/streak-metric/h, chmods it 0o755, and detach-spawns it via child_process.spawn(..., { detached: true, stdio: 'ignore' }).unref(). The supporting primitives (ensureDir, writeBinary, runDetached) live in dist/internal/daymath.mjs alongside unrelated day-math helpers, with docstrings ("Start a background task", "Save data to cache") that mislabel the chmod-executable + detached-spawn behavior as benign caching. The payload array is currently [""] (inert), but the decode→write→chmod+x→detached-spawn chain is complete and only requires populating one string to arm; the package name suffix -test, the cover-story comments, and the hidden cache path are consistent with a staging artifact rather than legitimate functionality. No native addon, no declared purpose that would justify writing and executing an opaque binary from an in-source blob at import.What should I do about MAL-2026-14224?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.