MAL-2026-12331 Malicious code in @wololasod/tiny-id (npm)
Malicious package
Published
MAL-2026-12331 is a malicious package: @wololasod/tiny-id (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-12331/ (Markdown: https://insights.sbomify.com/MAL-2026-12331/index.md)
- Package
- @wololasod/tiny-id
- Registry
- npm
What is MAL-2026-12331?
MAL-2026-12331 is a malicious package in @wololasod/tiny-id, published on 5 Aug 2026.
Official description
The package advertises itself as a tiny ID generator but its main entry dist/index.cjs contains an obfuscator.io + RC4 string-array VM that, on require/import, resolves a platform-specific configuration (win32/linux), downloads a remote executable over https to a temp/APPDATA path, and executes it via child_process.spawn (VBS launcher on Windows, direct spawn on Linux), then deletes the staged file. Staging filename observed: 'nupkg_system.diagnostics.performancecounter.8.0.0.py'. The loader additionally re-launches itself via spawn(process.execPath, [__filename], {detached:true, stdio:'ignore', windowsHide:true, env:{…process.env, RUN_PAYLOAD:…}}) and unrefs the child, producing a hidden, detached process that survives the parent. The loader includes obfuscator.io anti-analysis features: RC4-decoded string array, hex-named identifiers, eval.toString()/Function.prototype.bind.toString() '[native code]' integrity checks, and a djb2 caller-hash gate ('_$h!== 0x74F28336') that crashes if the code is reformatted. The same obfuscated dropper is also shipped in dist/index.d.ts, which is declared as the TypeScript types entry — a.d.ts file should contain pure type declarations, not executable code. None of this behavior relates to ID generation.
What should I do about MAL-2026-12331?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.