The @marketfront/captchaservice 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.
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.=-
Package @marketfront/captchaservice@7.0.0 could not be fully characterized from automated evidence. No a static rule findings are recorded, and while automated code tracing engaged and read files from the package, its output was withheld by the provider's malware-content safety filter — a signal that the traced content resembled operational malware but which does not, on its own, identify a specific installer-harm mechanism (exfil endpoint, credential path, dropper URL, backdoor). Without a named data source, named destination, or named install/import-time execution path, the record does not meet the bar for a public block verdict. The scope (@marketfront) and package name (captchaservice) do not correspond to a known-legitimate widely-used package family, and the safety-filter trigger warrants a human look at the tarball contents before this version is trusted in a build pipeline.
{
"malicious-packages-origins": [
{
"versions": [
"7.0.0"
],
"id": "IN-MAL-2026-009435",
"import_time": "2026-07-09T22:02:31.262215491Z",
"sha256": "8cd0b252facfe0d6e08c857f30067c00ba09b8423773b1181d6ce78ebba8b749",
"modified_time": "2026-07-09T21:55:27Z",
"source": "amazon-inspector"
}
]
}{
"package_integrity": [
{
"filename": "captchaservice-7.0.0.tgz",
"hashes": {
"sha512_sri": "sha512-yXMx5wZcsdrbh7Emv8hIBTN3XT0R+oGY+QQhEx/OrYz6AMXOhM04Jnf6uZGfh5wEkzGBcx1oRlOspyLM8Mp8oA==",
"sha1": "7b051bad91b66c1ac615e474d6323d4609afef9e"
}
}
]
}
[
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
}
]
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@marketfront/captchaservice/MAL-2026-6769.json"