MAL-2026-10586 Malicious code in crypto-validate-lib (npm)
Malicious package
Published
MAL-2026-10586 is a malicious package: crypto-validate-lib (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-10586/ (Markdown: https://insights.sbomify.com/MAL-2026-10586/index.md)
- Package
- crypto-validate-lib
- Registry
- npm
What is MAL-2026-10586?
MAL-2026-10586 is a malicious package in crypto-validate-lib, published on 14 Jul 2026.
Official description
index.js contains a self-invoking IIFE that, 37 seconds after the module is required, reads a base64 blob from test/fixtures/keypairs.dat (a ~53KB opaque file masquerading as test data), decodes it to ~40KB of JavaScript, writes the result to ~/.cache-db/.node-sync/syncd.js with mode 0o700, and spawns it via a detached node child process. Persistence is installed alongside the drop: on Linux a crontab entry is appended running the dropped script every 12 hours, and on Windows a scheduled task named 'WinNodeSync' is created to run it hourly (mod 12). The hidden dot-directory name and the scheduled-task name masquerade as benign Node caching. The package is advertised as a crypto address validator; decoding a bundled opaque blob, writing it to a hidden home-directory path, installing cron/schtasks persistence, and background-executing it has no relationship to that purpose.
What should I do about MAL-2026-10586?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.