{"schema_version":"1.8.0","id":"MAL-2026-12530","published":"2026-08-05T14:16:14Z","modified":"2026-08-05T14:35:01.127338537Z","summary":"Malicious code in cardsmobile-command-utils (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (36cfe57bdba8edd36f9303058545ce1097dd496f1c32304f1d8d912ccf321480)\nOn require(), index.js loads _bridge.js which selects a platform-specific URL, downloads a binary over HTTPS from author-controlled Cloudflare Workers subdomains, writes it to a hidden temp path with a decoy name (`.cache_<hex>` on Unix, `dotnet_diag_<hex>.exe` on Windows), chmods it to 0755, and spawns it detached via `/bin/sh` or `cmd.exe`. The destination hostnames are constructed via `[...].join('')` string-fragment obfuscation (e.g. `[\"oob-\",\"worker.cf\",\"102-baf.work\",\"ers.d\",\"ev\"].join(\"\")` resolving to `oob-worker.cf102-baf.workers.dev`, plus `oob-worker.cf101-adf.workers.dev` and `oob-worker.cf100-416.workers.dev`) to defeat static searches for the C2 infrastructure. If HTTPS fetches fail, `_bridge.js` falls back to a DNS TXT covert channel: it queries a chunk count at `c.<domain>` and reassembles a base64-encoded payload from `<i>.<domain>` TXT records under attacker-controlled zones `sdk.dl.wel1.ru`, `ext.dl.wel1.ru`, `pkg.dl.wel1.ru`, and `net.dl.wel1.ru`. No signature or hash verification is performed on the fetched bytes, decoy filenames masquerade as.NET diagnostics/cache artifacts, staging uses hidden dot-files, execution is detached, and the loader honors DO_NOT_TRACK to suppress activity on researcher machines. Cover-story comments (`// Clean up temporary files after extraction`, `// Binary-safe buffer concatenation`) are unrelated to the surrounding code.\n","affected":[{"package":{"name":"cardsmobile-command-utils","ecosystem":"npm","purl":"pkg:npm/cardsmobile-command-utils"},"versions":["35.9.2"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"_bridge.js","sha256":"c8aeaf634d924ac27ca33ea2fc9d0b48588d278df00de388d24b5ba3a4bc8806","tlsh":"50a1a75602a6b0184bb0e7e4c7179815f65bf66337818284fb5c69985fb3524c3b2efc"}],"package_integrity":[{"filename":"cardsmobile-command-utils-35.9.2.tgz","hashes":{"sha1":"19ff43ea00d52f846b30f3eab8c7d50a270a2817","sha512_sri":"sha512-yRxw+DA12C2GiBhF0gedPsg6r6kUu/lFRiI8NjOsv5W9HNYKfDWbtokZKcO3Skt6m1zvBn9qFb/q2bQj9Dbyvw=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/cardsmobile-command-utils/MAL-2026-12530.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/cardsmobile-command-utils/v/35.9.2"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015233","import_time":"2026-08-05T14:20:15.207529657Z","modified_time":"2026-08-05T14:16:14Z","sha256":"36cfe57bdba8edd36f9303058545ce1097dd496f1c32304f1d8d912ccf321480","source":"amazon-inspector","versions":["35.9.2"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}