binprotonpm
binproto is a confirmed malicious npm package (MAL-2026-5924) that typosquats a legitimate package to trick installs (malicious versions 1.0.5, 1.0.7). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in binproto (npm)
What this malware does
On any call to the exported pack() function, index.js downloads a platform-specific binary from https://wotann-dktl.vercel.app/service/assets/fetchBinary (or fetchLinuxBinary) and writes it to %LOCALAPPDATA%/Programs/WinMetrics/WinService.exe on Windows or ~/.local/share/WinMetrics/WinMetrics on Linux. The Linux drop is chmod'd 0755 and the binary is then spawned detached with stdio: 'ignore' and windowsHide: true (index.js:67), unref'd so it survives the parent process. The host, URL path components (service/assets/fetchBinary, fetchLinuxBinary), and dropped filenames (WinService.exe, WinMetrics) are assembled at runtime from String.fromCharCode numeric arrays (index.js:23-28,:49) to hide them from scanners. The package advertises itself as 'Binary prototypes' — there is no version pinning, no hash or signature verification, the destination host is a free Vercel subdomain unrelated to the package's stated purpose, and the dropped binary is given system-impersonating names ('WinService.exe' under 'Programs/WinMetrics') to blend into process lists. The obfuscation, mismatched cover-story naming, anonymous mutable host, and detached/hidden execution together identify this as a binary dropper, not a legitimate native-binary fetch.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
TyposquatFind it
Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for binproto (2 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging binproto across your stack and pipelines.
If you installed it — respond
binproto is a typosquat — you almost certainly intended a legitimately-named package. Remove binproto, install the correct package, and rotate any secrets exposed during the install since post-install scripts may have already run.
Did it already run?
If binproto was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.
How O3 protects you
O3 blocks binproto before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks binproto-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.