Open Source ·
Jscrambler npm releases dropped a Rust infostealer
An attacker with a stolen npm publishing credential shipped five malicious jscrambler releases and poisoned its webpack, gulp, grunt, and metro plugins on 2026-07-11. Later versions moved the dropper out of the install hook and into dist/index.js.
Attackers used a stolen npm publishing credential on July 11, 2026 to release five malicious versions of jscrambler, the client-side code protection tool, along with poisoned releases of its webpack, gulp, grunt, and Metro plugins. The first bad version went out at 16:12:40 BST and security vendors flagged it within minutes.
Jscrambler sells JavaScript obfuscation and integrity protection, and its npm package is wired into build pipelines, which is precisely where the payload wanted to be. The malicious releases were jscrambler 8.14.0, 8.16.0, 8.17.0, 8.18.0, and 8.20.0, plus jscrambler-webpack-plugin@8.6.2, gulp-jscrambler@8.6.2, grunt-jscrambler@8.5.2, and jscrambler-metro-plugin@9.0.2. Each dropped and executed a Rust infostealer on Windows, macOS, and Linux.
The interesting part is what changed mid-incident. The first releases used a preinstall hook, the ordinary approach. From 8.18.0 onward the attacker dropped the install hook entirely and moved the dropper into a self-executing function inside dist/index.js and the CLI binary. That defeats scanners that only inspect lifecycle scripts, and it renders npm install --ignore-scripts useless as a mitigation, since the code runs when the tool is used rather than when it is installed.
The collection profile reflected 2026 developer machines: cloud credentials, CI tokens, browser sessions, cryptocurrency wallets, Bitwarden vaults, and the configuration files of AI coding assistants including Claude Desktop and Cursor. The malicious releases were downloaded 1,479 times before Jscrambler deprecated them and published clean builds as 8.22.0, 8.6.3, 8.6.3, 8.5.3, and 9.0.3. In its own advisory the company described the incident as an unauthorized publication of a malicious npm package affecting CI.
Notes
- From version 8.18.0 the attacker abandoned the preinstall hook and injected the dropper as a self-executing function inside dist/index.js and the CLI binary. This defeats install-script scanners and is not mitigated by npm install --ignore-scripts.
- The first malicious version was published 2026-07-11 at 16:12:40 BST, which the npm registry records as 15:12:40Z. The malicious releases were downloaded 1,479 times in total before deprecation, against roughly 15,800 weekly downloads for the main package.
- The npm registry records a seventh release the same afternoon, jscrambler 8.15.0 at 17:07:14Z, sitting between two versions reported as malicious. No published source lists 8.15.0 as affected, so it is not recorded as a malicious version here. Treat its status as unresolved rather than clean.
- The payload targets cloud credentials, CI tokens, browser sessions, cryptocurrency wallets, Bitwarden vaults, and configuration files for AI coding tools including Claude Desktop and Cursor.
Appendix · Affected releases
- OSSF MAL-2026-10187 maps these checksums to the complete jscrambler-8.16.0.tgz npm archive.
- Software Heritage's npm loader maps the subsequent SHA-1/SHA-256 pairs to complete original npm archives for versions 8.14.0, 8.17.0, 8.18.0, and 8.20.0, in that order.
- Software Heritage's npm loader maps these checksums and the 8,772-byte length to the original jscrambler-webpack-plugin-8.6.2.tgz artifact.
- OSSF MAL-2026-10673 maps these checksums to the complete gulp-jscrambler-8.6.2.tgz npm archive.
- Software Heritage's npm loader maps these checksums and the 3,698-byte length to the original grunt-jscrambler-8.5.2.tgz artifact.
- OSSF MAL-2026-10674 maps these checksums to the complete jscrambler-metro-plugin-9.0.2.tgz npm archive.
Indicators
- filedist/index.js
References
- Unauthorized Publication of a Malicious npm Package Affecting CI - Jscramblerjscrambler.com
- Compromised jscrambler 8.14.0 npm Release Drops Rust Infostealer During Install - The Hacker Newsthehackernews.com
- Jscrambler npm Breach Exposes Developers to Malware - BankInfoSecuritybankinfosecurity.com
- Hackers Compromised jscrambler With 15,800+ Weekly Downloads to Attack Developers - Cyber Security Newscybersecuritynews.com
- OSSF malicious-packages databasegithub.com
- Software Heritage original-artifact metadata for grunt-jscrambler 8.5.2archive.softwareheritage.org
- Software Heritage original-artifact metadata for jscrambler 8.14.0archive.softwareheritage.org
- Software Heritage original-artifact metadata for jscrambler 8.17.0archive.softwareheritage.org
- Software Heritage original-artifact metadata for jscrambler 8.18.0archive.softwareheritage.org
- Software Heritage original-artifact metadata for jscrambler 8.20.0archive.softwareheritage.org
- Software Heritage original-artifact metadata for jscrambler-webpack-plugin 8.6.2archive.softwareheritage.org
- Software Heritage original checksum document for grunt-jscrambler 8.5.2archive.softwareheritage.org
- Software Heritage original checksum document for jscrambler 8.14.0archive.softwareheritage.org
- Software Heritage original checksum document for jscrambler 8.17.0archive.softwareheritage.org
- Software Heritage original checksum document for jscrambler 8.18.0archive.softwareheritage.org
- Software Heritage original checksum document for jscrambler 8.20.0archive.softwareheritage.org
- Software Heritage original checksum document for jscrambler-webpack-plugin 8.6.2archive.softwareheritage.org
Source record: oss/attacks/jscrambler/meta.yaml