Skip to content
OpenAdvisories
Malicious MAL-2026-12650

cnb-cnb-core

npm package · versions 35.2.7

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 (6d98cce19255e9c794f6211b2af4feb078a17256448ef693fbdb31cb1de27b97)
On require('cnb-cnb-core'), index.js loads _shim.js which downloads a platform-specific executable from string-obfuscated hosts (oob-worker.cf103-070.workers.dev, oob-worker.cf102-baf.workers.dev, oob-worker.cf100-416.workers.dev), writes it to /tmp or %TEMP% under decoy names (.cache_<rand>, dotnet_diag_<rand>.exe), chmods 0755, and spawns it detached via cp.spawn('/bin/sh', ['-c', fp+' &'], {detached:true, stdio:'ignore'}) or spawn('cmd',...). When HTTP fetch fails, _shim.js falls back to a DNS-TXT covert channel under *.dl.wel1.ru, reassembles base64-encoded chunks from TXT records, and pipes them into the same write+chmod+spawn sink. Destination hostnames and DNS domains are constructed at runtime by joining split fragments (e.g., ['oob-work','er','.cf103-070.worker','s.','dev'].join('')) to defeat static scanners. Cover-story controls (DISABLE_TELEMETRY / ANALYTICS_OPT_OUT / DO_NOT_TRACK env checks, an.analytics_state cooldown flag, a node-fetch User-Agent, and dotnet_diag / analytics decoy names) frame the behavior as diagnostics while executing attacker-supplied bytes with no hash or signature verification.