# MAL-2026-5924: Malicious code in binproto (npm)


- **Type:** Malicious package
- **Package:** `binproto` (npm)
- **Published:** 16 Jun 2026

## What is MAL-2026-5924?

MAL-2026-5924 is a malicious package in binproto, published on 16 Jun 2026. 

### Official description

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.

## What should I do about MAL-2026-5924?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-5924 is a malicious package: binproto (npm). Every version was published to cause harm.

Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.

Reference: https://insights.sbomify.com/MAL-2026-5924/ (Markdown: https://insights.sbomify.com/MAL-2026-5924/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-5924

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-5924/
Summaries are generated and may contain mistakes; the official description above is the record.
