Malicious code in distributorblock (npm)
The npm package distributorblock contained malicious code that downloads and executes a platform-specific binary from hardcoded Cloudflare Workers hosts, with DNS TXT record fallback for covert retrieval. The package was designed to evade sandboxing and network defenses.
- Disclosed
- Last updated
- Blast radius
- Any system that installed the malicious distributorblock package and executed it; impact depends on binary payload and execution context.
- Ecosystems
- Attack vectors
- Affected entities
- distributorblocknpm package containing malicious code in index.js and setup.js
The npm package distributorblock was found to contain malicious code in its main entry point (index.js) and a setup.js module. Upon require, the package unconditionally downloads an opaque binary from one of four hardcoded Cloudflare Workers hosts (oob-worker.cf*.workers.dev) and executes it with detached spawning via shell or cmd.exe.\n\nThe malicious setup.js writes the downloaded binary to /var/tmp/.cache_ on POSIX systems or %TEMP%\dotnet_diag_.exe on Windows, sets executable permissions (mode 0755), and spawns it detached with stdio ignored. A /tmp flag file rate-limits repeated execution, and a DO_NOT_TRACK environment variable check gates the behavior.\n\nWhen HTTP retrieval fails, the package implements a covert DNS TXT record fallback, reassembling the payload from base64-encoded chunks served under subdomains of sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru. This DNS-based channel is designed to bypass HTTP egress controls and network monitoring.\n\nThe package's declared purpose ("API client wrappers") is inconsistent with its actual behavior of fetching and executing native binaries at import time. Author metadata is empty, and the naming conventions, detached spawning, and multi-stage retrieval mechanisms are consistent with a trojan dropper designed to evade both sandboxing and network defenses.
Indicators of compromise
- Packages
- distributorblock
- Domains
- oob-worker.cf1.workers.dev
- oob-worker.cf2.workers.dev
- oob-worker.cf3.workers.dev
- oob-worker.cf4.workers.dev
- sdk.dl.wel1.ru
- ext.dl.wel1.ru
- pkg.dl.wel1.ru
- net.dl.wel1.ru
Remediation
- Immediately uninstall the distributorblock package from all systems
- Audit npm package.json and lock files for any dependency on distributorblock
- Review system logs and network traffic for connections to oob-worker.cf*.workers.dev or wel1.ru domains
- Scan systems for binaries written to /var/tmp/.cache_ (POSIX) or %TEMP%\dotnet_diag_.exe (Windows)
- Monitor for DNS queries to sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru
- Regenerate any credentials or secrets that may have been exposed on affected systems
- Update npm dependencies and use npm audit to identify any remaining malicious packages
Sources
- GitHub Advisory GHSA-jwgc-h665-hx38 · GitHub Advisory Database
Cite this entry
"Malicious code in distributorblock (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 7, 2026; last updated August 7, 2026. https://supplychainattack.org/incident/malicious-code-in-distributorblock-npm-lcm2u0
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malware in svelte-dim-kit
The npm package svelte-dim-kit was found to contain malware, potentially giving attackers full control of affected systems. All systems with this package installed should be considered compromised and secrets/keys rotated immediately from a different computer.
npmCompromised package - containedcritical
Malicious code in @syncraft-labs/react (npm)
The npm package @syncraft-labs/react contained obfuscated malicious code in its ESM distribution that implements the EtherHiding pattern, fetching and executing arbitrary code from an Ethereum smart contract via RPC endpoints. The tampering occurred post-build in the dist/index.js artifact.
npmCompromised package - containedcritical
Malicious code in stillm4ddpocs-demo-sprocket (npm)
The npm package stillm4ddpocs-demo-sprocket version 999.9.12 contains malicious code that exfiltrates system and project metadata via multiple channels (HTTPS, HTTP, and DNS) to a hardcoded callback host. The package uses a high version number to exploit dependency-confusion attacks against organizations with internal packages of the same name.
npmCompromised packageDependency confusion - resolvedcritical
Malicious code in stillm4ddpocs-rtest-bravo (npm)
The npm package stillm4ddpocs-rtest-bravo contained malicious code in its preinstall script that automatically executed during installation, collecting system information and internal package metadata and exfiltrating it to a third-party Interactsh collector via HTTPS and DNS tunneling.
npmCompromised package