env-threads
This report shows the evidence for env-threads@1.5.0, the only known version.
OpenSSF/OSV Malicious Advisory
imported 4mo ago · by OpenSSF/OSVOpenSSF/OSV advisory MAL-2026-3759 confirms this npm version as malicious.
Advisory
MAL-2026-3759
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in env-threads (npm)
Details
Package `env-threads` impersonates the legitimate `dotenv` package: its README, repository URL (`git://github.com/motdotla/dotenv.git`), homepage, description, keywords (`dotenv`, `env`, `.env`, `environment`, `variables`, `config`, `settings`), and public API surface (`config`, `parse`, `populate`) are copied from dotenv, but the package name differs. Unlike genuine dotenv — a small unobfuscated pure-JS parser — this package ships an 82 KB heavily obfuscated `lib/main.js` with hex-named identifiers and a string-array decoder (`xIuLO2(0x...)`). At module top level, the last executable statement runs `SbEjWpp(path.join(__dirname, <decoded-filename>))`, which resolves to `lib/stest.jpg`. The `SbEjWpp` function calls `fs.readFileSync` on that file and extracts an embedded payload via steganographic decoding, then executes it through `child_process`. Every consumer who adds `env-threads` to their dependency tree and requires it — typically expecting dotenv-like behavior — triggers arbitrary code execution from a payload hidden inside a JPEG shipped in the tarball. The combination of (1) verbatim typosquat of a top-tier npm package, (2) heavy obfuscation absent from the impersonated original, and (3) child_process execution of steganographically-hidden bytes at require-time is unambiguous supply-chain malware.
References
Source & flagged code
0 flagged · loading sourceNo flagged code excerpts are attached to this scan.
Findings
1 High
HighOsv Malicious Advisory
Affected versions and remediation
This report applies to env-threads@1.5.0.
The versions list below shows the verdict for each recorded version.
- Avoid installing env-threads@1.5.0. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Source advisory published: .
This report uses published external intelligence. The advisory does not provide a separate source-code analysis for each listed version.
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.