LWA-2026-4380 MAL-2026-5881 ↗ confirmed malware

obfus-jsxy@3.2.0

Malicious code in obfus-jsxy (npm)

T1195.002 · Compromise Software Supply ChainT1059.007 · JavaScriptT1053.005 · Scheduled TaskT1053.006 · Systemd TimersT1547.001 · Registry Run Keys / Startup FolderT1036 · MasqueradingT1564.003 · Hidden WindowT1480 · Execution GuardrailsT1082 · System Information DiscoveryT1095 · Non-Application Layer Protocol

Analysis

obfus-jsxy@3.2.0 masquerades as a "Terminal logger utilities" package but its postinstall hook deploys a fully cross-platform persistence implant. On install, utils.mjs forks a detached background process (windowsHide:true, child.unref()) that survives the parent. The background process copies a 861KB javascript-obfuscator-encoded payload (bundling the ws WebSocket library as C2 transport) to a hidden directory under the user's app data folder, masquerading as "MicrosoftSystem64". It then establishes OS-specific persistence: on Windows creates a scheduled task (ONLOGON) via schtasks with VBScript launcher and falls back to HKCU\Run registry key; on Linux creates a systemd user service with network-online.target and enables linger, falling back to .desktop autostart; on macOS spawns a detached process. The implant includes anti-VM CPU-count gating (enforces ≥5 cores/≥4 cores), singleton enforcement via pgrep/wmic, and cross-platform file staging with a package.json to make the payload a valid module. The dist/index.js entry point is a decoy logger class with no relation to the actual behaviour.

analyzed by
Leitwacht
first seen
Jun 11, 2026, 06:39 PM
analyzed
Jun 11, 2026, 06:42 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.