MAL-2026-6542
Malicious code in @osmura/treeify (npm)
Details
--- _-= Per source details. Do not edit below this line.=-_
## Source: amazon-inspector (4643c1f27e4916ea6090f1e6196c980fa1d65b96899a80b1f57633eaf16a61a9) The package republishes the upstream `treeify` library (Luke Plaster, repo notatestuser/treeify) verbatim under the unrelated `@osmura` scope, preserving the original package.json author/repository/keywords/README as cover. Appended to `treeify.js` (starting around line 115) is ~93KB of obfuscator.io-style code (RC4+base64 string-array, `while(!![])` control-flow flattening) that runs whenever a consumer does `require('@osmura/treeify')`. The injected code re-spawns Node detached with a marker environment variable, issues an HTTPS request to a hostname encoded inside the obfuscated string array, AES-256-GCM-decrypts the response using a key XOR-derived from four embedded base64 buffers, writes the plaintext payload into `os.tmpdir()/<name>-<pid>/`, and spawns it via `child_process.spawn(..., {stdio:..., windowsHide: true, detached: true})` — see treeify.js:116 `var aM = at[ba(0x19,...)](aK, aL, {'stdio':..., 'windowsHide':!![], 'detached':!![]})` and the corresponding `https.request({method: 'GET', hostname: aG[...], timeout: 60000},...)` call. Two independent injected IIFEs implement the same dropper with separate encoded URL pools, providing fallback C2. Any installer that requires this package fetches and executes attacker-controlled code on their machine at import time.
Are you affected?
Enter the version of the package you're using.
Affected packages
0 No fixed version published yet for @osmura/treeify (npm). Pin to a known-safe version or switch to an alternative.