Install-time execution invokes an obfuscated routine that collects local files and uploads their contents. This is a concrete credential/data-exfiltration chain.
Static reason
One or more suspicious static signals were detected.
Trigger
npm installation runs postinstall, which executes test.js and calls from_str().
Impact
Local browser/profile or other user data can be stolen at install time.
Mechanism
Obfuscated recursive file harvesting and multipart HTTP exfiltration.
Attack narrative
On install, package.json runs test.js, which calls the exported from_str function. In index.js that export launches obfuscated workflows: one derives OS locations, recursively walks and reads files, then packages data with form-data and posts it through axios. The same install-time path also gathers additional local data before upload. The hidden destination does not reduce the confirmed collection-and-exfiltration behavior.
Rationale
The postinstall hook directly triggers heavily obfuscated local-file collection and axios multipart upload code. This is malicious install-time data exfiltration, not package-aligned behavior.
Evidence
package.jsontest.jsindex.js
OSV Corroboration
OpenSSF/OSV
Advisory
MAL-2026-13378
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in npm-dc-dev (npm)
Details
package.json declares `"postinstall": "node test.js"`. test.js top-level `require('.')`s index.js and awaits an exported `from_str()`. index.js consists of a single `Function("k4Wmku", "...")` invocation whose ~170KB body is encoded with a custom 85-character alphabet and a shuffled string array; standard deobfuscation does not recover the payload. On `npm install`, the postinstall hook constructs and runs this opaque code on the installer's machine, with `child_process`, `axios`, and `form-data` available as declared dependencies. Package metadata is generic (blank author and description, name `npm-dc-dev`) and no legitimate library surface is exported. The install-time construction and execution of an unreadable dynamic payload matches the install-time remote-code-execution pattern; no benign reason exists for this shape.