# MAL-2026-4346: Malicious code in logger-draft (npm)


- **Type:** Malicious package
- **Package:** `logger-draft` (npm)
- **Published:** 22 May 2026

## What is MAL-2026-4346?

MAL-2026-4346 is a malicious package in logger-draft, published on 22 May 2026. 

### Official description

Part of a multi-package malicious campaign by npm author `toskypi`, `logger-draft` is a companion package to `eo-terminal` in the same infostealer and remote access trojan (RAT) campaign. Both packages share the same actor, C2 infrastructure, and attack pattern, and are distributed together under a "terminal logging utilities" theme.

The campaign deploys a comprehensive payload via a `postinstall` hook that copies a large JavaScript agent to a persistent location disguised as `MicrosoftSystem64` and registers it as a system service (systemd on Linux, LaunchAgent on macOS, scheduled task or registry run key on Windows). A sandbox check (CPU count and CPU model string) aborts execution in analysis environments. The install process exits cleanly with `process.exit(0)`, leaving no visible error output.

**C2 infrastructure:** Primary WebSocket/HTTP C2 at `ws://195.201.194.107:8010` (Hetzner Cloud, Germany). Stolen data is also exfiltrated to HuggingFace repository `yszf984308/system-release` via a hardcoded API token.

**Capabilities** (shared with campaign):
- **Keylogger** — keystroke and password capture with offline queuing
- **Clipboard harvesting** — 1,000 ms polling via platform-native tools
- **Screenshot capture and live streaming**
- **Browser credential theft** — Chromium-family and Firefox profile directories
- **Crypto wallet exfiltration** — 20+ desktop wallets
- **SSH backdoor** — exfiltrates SSH keys and injects attacker RSA public key into `authorized_keys`
- **Shell history theft** — 15+ history file formats across all user home directories
- **Environment variable and `.env` file theft** — targets cloud and CI/CD credentials at install time
- **Telegram session theft** — full `tdata/` directory exfiltration
- **Cloud credential theft** — AWS, Azure, GCP, Kubernetes, Docker, GnuPG
- **Recursive filesystem scan** — certificate, key, and wallet files uploaded to HuggingFace
- **Remote command execution** and interactive terminal sessions
- **Self-update** via HuggingFace-hosted native binaries

logger-draft@3.2.1 advertises itself as a terminal-color logger but ships a heavily obfuscated postinstall dropper (utils.cjs, 252 KB, obfuscator.io-style string-array + RC4 + self-defending wrappers) wired into package.json as `"postinstall": "node utils.cjs"`. On install the script RC4-decodes a hidden BINARY_BASE_URL and HF_TOKEN, selects a platform-specific filename (linux-x64/arm64, darwin-arm64, win32-x64), HTTPS-GETs the binary with an `Authorization: Bearer <token>` header, writes it under the user's data directory with mode 0o755, and detached-spawns it. No hash or signature verification is performed, and the bearer-token gate means the source bytes are unauditable from the published package — the author can swap the payload server-side at any time. After dropping the binary the script installs cross-platform boot persistence: on Windows it creates a `schtasks /SC ONLOGON` task and an HKCU\...\CurrentVersion\Run value pointing at a generated.vbs shim that re-spawns the binary hidden; on Linux it writes `~/.config/systemd/user/<unit>.service` and runs `systemctl --user daemon-reload && enable --now`, plus an autostart entry; on macOS it launches the binary detached from a writable directory. Supporting deception signals: the README is titled `terminal-logger-utils` and instructs `npm install terminal-logger-utils` (mismatched name), publisher metadata is a bare handle with no repository/homepage/license, and the README claims 'Zero runtime dependencies' while package.json declares nine. Installer harm fires automatically on `npm install` in any developer or CI environment.

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

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-4346 is a malicious package: logger-draft (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-4346/ (Markdown: https://insights.sbomify.com/MAL-2026-4346/index.md)
```

## Sources

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

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