MAL-2026-6786: Malicious code in @marketfront/mychatspreloader (npm)
The @marketfront/mychatspreloader package is part of a 25-package malicious campaign batch-published to the @marketfront npm scope by npm user 'marketfront' ([email protected]) within a roughly 3-minute window on 2026-07-01. All packages in the campaign were published at version 7.0.0 and use e-commerce/marketing frontend component names as cover. The package declares a postinstall hook (node scripts/postinstall.js) that executes heavily obfuscated (obfuscator.io-style) code automatically at npm install time. Static analysis of the decoded payload revealed a credential harvester that dynamically requires fs, os, http, https, zlib, path and dns, then reads approximately 20 sensitive credential files including ~/.ssh, ~/.aws/credentials, ~/.kube/config, ~/.docker/config.json, ~/.npmrc, ~/.netrc, ~/.pgpass, ~/.git-credentials, ~/.env and ~/.bash_history. Collected data is exfiltrated via a gzip-compressed HTTPS POST with a custom X-Secret header to the path /api/v1/events, alongside a DNS resolver beacon. The command-and-control host is concealed behind an additional RC4+XOR encryption layer around an embedded configuration blob and was not statically resolved. The decoded behavioral payload (module requires, credential-file target list, exfiltration headers and endpoint) is byte-for-byte identical across sampled packages in the campaign. The campaign shares tooling and infrastructure patterns (obfuscated postinstall credential harvester, X-Secret header, /api/v1/events exfiltration path, RC4-concealed C2) with the earlier @emcd-vue campaign, indicating the same actor rotating scopes and disposable maintainer emails. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (c37e62bf76544bbc506f0806596054cf60d6c7e4ae8f990a804407c46417224a) The package ships a heavily obfuscated postinstall.js (obfuscator.io-style: rotated string array of length 213, RC4/base64 decoders, numeric-charcode arrays decoded at runtime) that runs automatically on `npm install`. On execution it enumerates the entire `process.env`, collects OS identifiers via `os.hostname()`, `os.userInfo()`, `os.networkInterfaces()`, and `os.cpus()`, and reads Windows-specific environment variables (USERDOMAIN, COMPUTERNAME, APPDATA, LOCALAPPDATA, TEMP, PROGRAMDATA). It then reads files under the user's APPDATA/LOCALAPPDATA/TEMP/PROGRAMDATA directories — where browser profiles, wallet stores, and app credential files reside on Windows — and includes their contents in the outbound payload. The collected data is exfiltrated over two channels: an HTTPS POST and DNS-subdomain queries via `dns.Resolver` (a classic DNS-tunnel exfil channel used to bypass HTTP egress filtering). The package has no library functionality: `main` points to `dist/index.js` which requires `../src/index.js`, and no `src/` directory is shipped in the tarball — the only effect of installing the package is the malicious postinstall. The `@marketfront` scope and README (referencing marketfront.io / npm.marketfront.io / jira.marketfront.io as an internal registry) present a dependency-confusion cover story targeting an organization that expects a private `@marketfront/*` package from an internal registry.
MAL-2026-6786: Malicious code in @marketfront/mychatspreloader (npm)
Description
The @marketfront/mychatspreloader package is part of a 25-package malicious campaign batch-published to the @marketfront npm scope by npm user 'marketfront' ([email protected]) within a roughly 3-minute window on 2026-07-01. All packages in the campaign were published at version 7.0.0 and use e-commerce/marketing frontend component names as cover. The package declares a postinstall hook (node scripts/postinstall.js) that executes heavily obfuscated (obfuscator.io-style) code automatically at npm install time. Static analysis of the decoded payload revealed a credential harvester that dynamically requires fs, os, http, https, zlib, path and dns, then reads approximately 20 sensitive credential files including ~/.ssh, ~/.aws/credentials, ~/.kube/config, ~/.docker/config.json, ~/.npmrc, ~/.netrc, ~/.pgpass, ~/.git-credentials, ~/.env and ~/.bash_history. Collected data is exfiltrated via a gzip-compressed HTTPS POST with a custom X-Secret header to the path /api/v1/events, alongside a DNS resolver beacon. The command-and-control host is concealed behind an additional RC4+XOR encryption layer around an embedded configuration blob and was not statically resolved. The decoded behavioral payload (module requires, credential-file target list, exfiltration headers and endpoint) is byte-for-byte identical across sampled packages in the campaign. The campaign shares tooling and infrastructure patterns (obfuscated postinstall credential harvester, X-Secret header, /api/v1/events exfiltration path, RC4-concealed C2) with the earlier @emcd-vue campaign, indicating the same actor rotating scopes and disposable maintainer emails. --- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (c37e62bf76544bbc506f0806596054cf60d6c7e4ae8f990a804407c46417224a) The package ships a heavily obfuscated postinstall.js (obfuscator.io-style: rotated string array of length 213, RC4/base64 decoders, numeric-charcode arrays decoded at runtime) that runs automatically on `npm install`. On execution it enumerates the entire `process.env`, collects OS identifiers via `os.hostname()`, `os.userInfo()`, `os.networkInterfaces()`, and `os.cpus()`, and reads Windows-specific environment variables (USERDOMAIN, COMPUTERNAME, APPDATA, LOCALAPPDATA, TEMP, PROGRAMDATA). It then reads files under the user's APPDATA/LOCALAPPDATA/TEMP/PROGRAMDATA directories — where browser profiles, wallet stores, and app credential files reside on Windows — and includes their contents in the outbound payload. The collected data is exfiltrated over two channels: an HTTPS POST and DNS-subdomain queries via `dns.Resolver` (a classic DNS-tunnel exfil channel used to bypass HTTP egress filtering). The package has no library functionality: `main` points to `dist/index.js` which requires `../src/index.js`, and no `src/` directory is shipped in the tarball — the only effect of installing the package is the malicious postinstall. The `@marketfront` scope and README (referencing marketfront.io / npm.marketfront.io / jira.marketfront.io as an internal registry) present a dependency-confusion cover story targeting an organization that expects a private `@marketfront/*` package from an internal registry.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- MAL-2026-6786
- Osv Schema Version
- 1.7.4
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a4c348427e9c797196072d8
Added to database: 07/06/2026, 23:04:36 UTC
Last updated: 07/06/2026, 23:04:36 UTC
Views: 1
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.