@osmura/treeify @1.1.3
Vulnerability report · Last retrieved from osv.dev June 27, 2026 at 1:51 AM UTC
OSV ID
MAL-2026-6542
Ecosystem
npm
Summary
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.
Source: amazon-inspector (4643c1f27e4916ea6090f1e6196c980fa1d65b96899a80b1f57633eaf16a61a9)
Protect your entire dependency tree
Scan your lock files automatically on every PR. Block malicious packages before they reach production.