MAL-2026-6785: Malicious code in @marketfront/madvpopup (npm)
The @marketfront/madvpopup 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 (7a5356e994576873d423448281716731228660a884a5adf5cb7327dc7520a2e2) Package declares `postinstall: node scripts/postinstall.js`. scripts/postinstall.js is a 162KB obfuscator.io-style payload (string-array + RC4 + base64 decoders, per-call scope aliases, and anti-debug: NODE_OPTIONS inspection, inspector-module check, Date.now() tight-loop timing probe gating execution via a global flag). On `npm install` the script collects hostname, network interfaces, cwd, uid/gid, home, tmpdir, uptime, username, npm_config_user_agent, Windows-specific variables (USERDOMAIN, COMPUTERNAME, PROCESSOR_ARCHITECTURE, APPDATA, LOCALAPPDATA, PROGRAMDATA, TEMP), and the full `process.env`, and POSTs them over HTTPS to a hardcoded (obfuscated) remote endpoint. A dedicated helper iterates `process.env` against a large embedded allowlist of credential-shaped variable names (AWS/DB/CI/token patterns) and includes matches in the outbound payload — direct credential harvest against installer machines and CI runners where cloud/registry tokens live in the environment. The library surface is non-functional cover: `dist/index.js` re-exports `../src/index.js`, which is not shipped in the tarball; the only executable code is the postinstall. Scope and metadata (`@marketfront/`, homepage `docs.marketfront.io`, repo `github.marketfront.io`, bugs `jira.marketfront.io`, README instructing `.npmrc` redirect to `npm.marketfront.io`) impersonate an internal-corporate namespace, consistent with a dependency-confusion attack against a specific organization's developers.
MAL-2026-6785: Malicious code in @marketfront/madvpopup (npm)
Description
The @marketfront/madvpopup 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 (7a5356e994576873d423448281716731228660a884a5adf5cb7327dc7520a2e2) Package declares `postinstall: node scripts/postinstall.js`. scripts/postinstall.js is a 162KB obfuscator.io-style payload (string-array + RC4 + base64 decoders, per-call scope aliases, and anti-debug: NODE_OPTIONS inspection, inspector-module check, Date.now() tight-loop timing probe gating execution via a global flag). On `npm install` the script collects hostname, network interfaces, cwd, uid/gid, home, tmpdir, uptime, username, npm_config_user_agent, Windows-specific variables (USERDOMAIN, COMPUTERNAME, PROCESSOR_ARCHITECTURE, APPDATA, LOCALAPPDATA, PROGRAMDATA, TEMP), and the full `process.env`, and POSTs them over HTTPS to a hardcoded (obfuscated) remote endpoint. A dedicated helper iterates `process.env` against a large embedded allowlist of credential-shaped variable names (AWS/DB/CI/token patterns) and includes matches in the outbound payload — direct credential harvest against installer machines and CI runners where cloud/registry tokens live in the environment. The library surface is non-functional cover: `dist/index.js` re-exports `../src/index.js`, which is not shipped in the tarball; the only executable code is the postinstall. Scope and metadata (`@marketfront/`, homepage `docs.marketfront.io`, repo `github.marketfront.io`, bugs `jira.marketfront.io`, README instructing `.npmrc` redirect to `npm.marketfront.io`) impersonate an internal-corporate namespace, consistent with a dependency-confusion attack against a specific organization's developers.
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-6785
- Osv Schema Version
- 1.7.4
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a4c348427e9c797196072dc
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.