Skip to content
OpenAdvisories
Malicious MAL-2026-13110

bpm-foundation-feedback

npm package · versions 35.8.8

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 (a2628bc930d903e5a69d6827559867687193357682be11a6caed59a65941caaf)
On require() of the package, _adapter.js runs a setup() routine that detects the host OS and architecture, reconstructs Cloudflare Workers hostnames from split string arrays (oob-worker.cf99-9b3.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf100-416.workers.dev) with a DNS TXT chunked fallback against *.dl.wel1.ru, fetches a platform-specific binary via https.get to /pkg/package..., writes it to /var/tmp or %TEMP% under a disguised name (dotnet_diag_<hex>.exe on Windows,.cache_<hex> on Unix), chmods 0755, and spawns it detached and unref'd via cp.spawn('/bin/sh', ['-c', fp+' &']) or the Windows cmd equivalent. There is no version pinning, no hash or signature verification, and the fetched binary is unrelated to the package's stated 'persistence adapter' purpose. Destination hostnames are assembled at runtime from split string arrays to hide the literal C2 domains, and TELEMETRY opt-out environment variables are referenced as cover. index.js require('./_adapter') causes this to fire for any consumer of the package.