LWA-2026-5847 MAL-2026-6273 ↗ confirmed malware

zod-pino@1.0.122

Malicious code in zod-pino (npm)

T1195.002 · Compromise Software Supply ChainT1059.007 · JavaScriptT1547.001 · Registry Run Keys / Startup FolderT1552.001 · Credentials In FilesT1056.001 · KeyloggingT1115 · Clipboard DataT1113 · Screen CaptureT1005 · Data from Local SystemT1082 · System Information DiscoveryT1071.001 · Web ProtocolsT1573 · Encrypted ChannelT1105 · Ingress Tool TransferT1041 · Exfiltration Over C2 ChannelT1567 · Exfiltration Over Web Service

Analysis

Combosquat package `zod-pino` masquerades as a legitimate library but installs a persistent remote access agent (RAT) via a 5-step postinstall chain. On `npm install`, the package: (1) patches clipboard-monitoring dependencies for silent operation, (2) copies itself to a hidden directory under the user's data home (~/.local/share/cfgmgr/.forge-jsxy/runtime/ on Linux, Application Support on macOS, AppData on Windows), (3) registers OS-level autostart so the agent survives package removal and reboots, and (4) spawns a detached background process that connects to a remote control server over WebSocket. The C2 address is hidden via AES-256-GCM encryption with an XOR-obfuscated embedded key — deliberately not exposed in process listings. The agent synchronizes clipboard contents and keyboard input to the remote server, harvests Discord bot tokens, takes screenshots, scans the filesystem for credentials and secrets, reads Chromium browser extension databases, and exfiltrates collected data to the C2 via relay features including HuggingFace Hub uploads. The agent listens for remote-control commands for file access and data forwarding. Default C2 ports: 9877 (WebSocket relay), 8765 (sync API). The agent starts silently with no UI prompts or console windows.

analyzed by
Leitwacht
first seen
Jun 22, 2026, 06:58 PM
analyzed
Jun 22, 2026, 06:59 PM

Related advisories

browse all confirmed advisories →

Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.