MAL-2026-12331

    Dashboard / Malicious Package / MAL-2026-12331

    MAL-2026-12331

    Published: 5 Aug 2026Last Modified: 15 Aug 2026

    Summary: Malicious code in @wololasod/tiny-id (npm)

    Details: Source: amazon-inspector (5b3ca8617b237bb3d8fd7d14aa18554118397e7b7faaea2e87cdd8433fef7a8f) 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.

    Affected packages

    Package

    Name: @wololasod/tiny-id

    Purl: pkg:npm/%40wololasod/tiny-id

    Affected ranges

    Type: N/A

    Events:

    Introduced- None
    Fixed -None

    Affected versions

    0.1.1
    0.1.3
    0.1.0
    0.1.2
    MAL-2026-12331 | CVE-DB