{"id":"MAL-2026-6783","summary":"Malicious code in @marketfront/infopopup (npm)","details":"The @marketfront/infopopup package is part of a 25-package malicious campaign batch-published to the @marketfront npm scope by npm user 'marketfront' (marketfront@tutamail.com) 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.\n\nThe 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.\n\nThe 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.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (206e60b923200a66a3a6bacec3f6ec998191bd648eb4bbc61b1cee008d2f3eec)\nOn `npm install`, the declared `postinstall` script (`scripts/postinstall.js`) runs a heavily obfuscated (obfuscator.io-style, RC4/XOR string-array decoded) payload that harvests installer-owned secrets and identity: reads `~/.aws/credentials`, `~/.ssh/known_hosts`, `~/.npmrc`, `~/.docker/config.json`, `~/.gitconfig`, and shell history files; bulk-serialises `process.env`; and collects hostname, user, network interfaces, CPU/OS. The collected data is encrypted and transmitted over two exfiltration channels: an HTTPS POST to a runtime-decoded remote endpoint, and a DNS-tunnel channel built via `new dns.Resolver().resolve4(...)` that splits the encrypted body into ≤50-character labels queried under an attacker-controlled parent domain to survive HTTPS egress filtering. Package metadata advertises a fabricated corporate identity (`*.marketfront.io` hosts that do not exist; README references an `internal-corp.io` auth endpoint) as a dependency-confusion cover story for what is otherwise a credential-stealer. Declared purpose (\"internal authentication client\") does not require reading AWS/SSH/npm/Docker/Git credential files or DNS-tunnelling encrypted blobs.\n","modified":"2026-07-06T05:16:46.212691757Z","published":"2026-07-02T00:00:00Z","database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-008036","source":"amazon-inspector","versions":["7.0.0"],"modified_time":"2026-07-06T03:21:46Z","sha256":"206e60b923200a66a3a6bacec3f6ec998191bd648eb4bbc61b1cee008d2f3eec","import_time":"2026-07-06T04:58:11.161420198Z"}]},"references":[{"type":"REPORT","url":"https://safedep.io/marketfront-dependency-confusion-campaign/"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@marketfront/infopopup/v/7.0.0"}],"affected":[{"package":{"name":"@marketfront/infopopup","ecosystem":"npm","purl":"pkg:npm/%40marketfront%2Finfopopup"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"versions":["7.0.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@marketfront/infopopup/MAL-2026-6783.json","indicators":{"package_integrity":[{"filename":"infopopup-7.0.0.tgz","hashes":{"sha1":"ae7372091069eaa8f80494988cda7011849b39f9","sha512_sri":"sha512-6sYgpOmnHI/RMEST9h0izfvaSvWMoDgovkgpc3ZJ35Nq2UPLSnqLsdDvk1REzfwN/lZoAKooeODAo/6QPHz8QA=="}}],"evidence_files":[{"path":"scripts/postinstall.js","tlsh":"e4f3da892744d443d95fdfbf7e61e6f4e01a7cc6c3c5284af714b82cf89852a9a48b81","sha256":"1ccefa95a7c472ffeb9b200b76e615212fe3be34755dfa06a5af3d42c09663f2"},{"path":"package.json","tlsh":"5a11c935c5325c3362da25a6ad711942b9265a3f1886fc1823d2805c4b8d56a11fd67e","sha256":"68eefadeffa562415df9ff8917f0206047cb82a49312232ff28b647141156960"}]},"cwes":[{"cweId":"CWE-506","name":"Embedded Malicious Code","description":"The product contains code that appears to be malicious in nature."},{"cweId":"CWE-506","name":"Embedded Malicious Code","description":"The product contains code that appears to be malicious in nature."}]}}],"schema_version":"1.7.5","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"SafeDep","contact":["https://safedep.io"],"type":"FINDER"}]}