Skip to content
OpenAdvisories
Malicious MAL-2026-12659

cobrowsing-utils

npm package · versions 35.7.3

Reported Aug 5, 2026 · Updated Aug 5, 2026

If this package is installed

Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.

Details

Source: amazon-inspector (a369ea5eb28ebfd7fddb1c5baa3fc22fb371761839c0a2bd7123df273acd2077)
cobrowsing-utils@35.7.3 executes a binary dropper as a side effect of requiring the package. index.js loads _helpers.js which auto-runs main() at import time. main() assembles Cloudflare Workers hostnames from split string fragments (e.g. oob-worker.cf101-adf.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf102-baf.workers.dev), fetches a platform-specific binary via https.get, writes it to /var/tmp or %TEMP% under masquerading names (.cache_<hex>, dotnet_diag_<hex>.exe, analytics_state), chmods 0755, and spawns it detached via /bin/sh -c "<path> &" or cmd.exe /c start /b. When HTTPS fetch fails, the code falls back to a DNS-TXT covert channel: it queries c.<domain> under *.dl.wel1.ru subdomains (sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, net.dl.wel1.ru) for a chunk count, reassembles indexed TXT records, base64-decodes the payload, writes it to disk, and executes it. Hostnames, discovery domains, file names, and function identifiers are chosen to blend with legitimate telemetry (_l, _p, _activate, analytics_state, dotnet_diag_). The package advertises itself as shared utilities; the fetched binary has no relation to that stated purpose.