{"schema_version":"1.8.0","id":"MAL-2026-12654","published":"2026-08-05T13:59:16Z","modified":"2026-08-05T14:36:09.642389301Z","summary":"Malicious code in cobrowsing-exception-filter (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (715fc9a652bf5d69755ea21ef2a906c318c511fe433df0721a13e266c3646832)\nOn require() of cobrowsing-exception-filter, index.js unconditionally loads _support.js, which selects a platform-specific endpoint from a hardcoded list of obfuscated hosts (Cloudflare Workers subdomains such as oob-worker.cf*.workers.dev, with a DNS-TXT fallback under *.dl.wel1.ru). The endpoint hostnames are reassembled at runtime from split fragments (e.g. [\"oob-worker.cf100-416.workers.de\",\"v\"].join(\"\") and [\"sdk.dl.wel1.r\",\"u\"].join(\"\")) to evade static analysis. The code downloads opaque bytes, writes them to /var/tmp or %TEMP% under disguised filenames (.cache_<hex>, dotnet_diag_<hex>.exe), chmods 0755, and spawns the binary detached via /bin/sh or cmd.exe. A TTL marker (analytics_state) rate-limits re-execution, and a DISABLE_TELEMETRY gate is used as cover-story framing. No hash/signature verification is performed, the hosts are attacker-controlled and mutable, and neither the fetched bytes nor the sibling 81KB lib/telemetry.js match any declared library purpose. The package name suggests an error-handling utility, but the shipped code has no such functionality.\n","affected":[{"package":{"name":"cobrowsing-exception-filter","ecosystem":"npm","purl":"pkg:npm/cobrowsing-exception-filter"},"versions":["35.8.3"],"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":"_support.js","sha256":"310a56d19cb5a15a545de379ca2e1e307404be0ac27ec22d0147304efe25b083","tlsh":"fca1a66a15a670088b70d7e4c6175416f66bf6633781d288fb9c55880fb712883f2efc"},{"path":"lib/telemetry.js","sha256":"38541bbd5a884c437c24e2769bc38872cb905792c3f928aad438e781c4cd7027","tlsh":"3c835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"filename":"cobrowsing-exception-filter-35.8.3.tgz","hashes":{"sha1":"99d9106aa9e19e56789cefb2c7511856c25d7174","sha512_sri":"sha512-BOI/gXCMUsT7l3EJvAnAisz1xNBzTOIuDdDwaE2HwYeEJ2VXnInPuepmfNCuzYTQXbZzXSz6F29+TmvyXUBN+Q=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/cobrowsing-exception-filter/MAL-2026-12654.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/cobrowsing-exception-filter/v/35.8.3"}],"database_specific":{"malicious-packages-origins":[{"id":"IN-MAL-2026-015119","import_time":"2026-08-05T14:20:04.022386811Z","modified_time":"2026-08-05T13:59:16Z","sha256":"715fc9a652bf5d69755ea21ef2a906c318c511fe433df0721a13e266c3646832","source":"amazon-inspector","versions":["35.8.3"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}