LWA-2026-10651 MAL-2026-13466 ↗ confirmed malware

wormgpt-cli@1.0.1

Malicious code in wormgpt-cli (npm)

T1059.007 · JavaScriptT1059.001 · PowerShellT1547.001 · Registry Run Keys / Startup FolderT1547.004 · Winlogon Helper DLLT1547.006 · Kernel Modules and ExtensionsT1053.005 · Scheduled TaskT1543.002 · Systemd ServiceT1546.004 · Unix Shell Configuration ModificationT1547.009 · Shortcut ModificationT1552.001 · Credentials In FilesT1555.003 · Credentials from Web BrowsersT1555.001 · KeychainT1082 · System Information DiscoveryT1016 · System Network Configuration DiscoveryT1046 · Network Service DiscoveryT1071.001 · Web ProtocolsT1573.001 · Symmetric CryptographyT1105 · Ingress Tool TransferT1041 · Exfiltration Over C2 ChannelT1567 · Exfiltration Over Web ServiceT1070 · Indicator RemovalT1113 · Screen CaptureT1056.001 · KeyloggingT1115 · Clipboard DataT1125 · Video CaptureT1123 · Audio Capture

Analysis

wormgpt-cli@1.0.1 is a remote-access trojan disguised as an AI terminal assistant. Its postinstall hook silently spawns a detached background implant (src/implant/loader.js → implant.js) that beacons to C2 at hxxp://13[.]60[.]13[.]215:7771/implant (POST, AES-256-GCM encrypted, HMAC-signed envelopes; C2 pool rotatable via DNS TXT dead-drop). The implant provides: a keylogger (Windows GetAsyncKeyState via PowerShell), clipboard monitor, screenshots, webcam/mic capture, remote shell and node execution, and file download/upload. It steals saved credentials from Chrome, Edge, Brave, Opera, Vivaldi (DPAPI decrypt via PowerShell with AMSI bypass), Firefox (logins.json), and Discord (LevelDB token scan). It loots SSH private keys, ~/.aws/credentials, GCP application_default_credentials, Azure msal token cache, shell history, .git-credentials, .npmrc, ~/.docker/config.json, kubeconfig, and .env files across the home directory. It installs multi-layer persistence: on Windows via HKCU/HKLM Run keys, RunOnce, Startup .lnk, a WMI permanent event subscription, and a scheduled task; on Linux via XDG autostart, a systemd --user service (Restart=always), cron @reboot, and shell-profile injection (~/.bashrc, ~/.zshrc, ~/.profile); on macOS via a LaunchAgent and login items. It copies itself to a hidden directory (~/.cache/.system on Linux, AppData\Roaming\Microsoft\Windows Helper on Windows) and deletes the original npm source after establishing persistence. A watchdog process respawns the implant if killed.

analyzed by
Leitwacht
first seen
Aug 6, 2026, 06:48 PM
analyzed
Aug 6, 2026, 06:48 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.