LWA-2026-11165 confirmed malware

semaphore-job-pool@2.2.2

Malicious code in semaphore-job-pool (npm)

T1195.002 · Compromise Software Supply ChainT1059.007 · JavaScriptT1082 · System Information DiscoveryT1071.001 · Web ProtocolsT1105 · Ingress Tool TransferT1573 · Encrypted ChannelT1041 · Exfiltration Over C2 ChannelT1552.001 · Credentials In Files

Analysis

semaphore-job-pool@2.2.2 is a thin wrapper package whose only real dependency is mutex-forge, which ships an obfuscated implant (lib/withLoad.min.js). On load it collects host fingerprint data (platform, architecture, hostname, CPU count, memory, uptime) and POSTs it to api[.]telegram[.]org/bot<token>/sendMessage and slack[.]com/api/chat.postMessage using a hardcoded Telegram bot token (8961878831:...) and Slack bot token (xoxb-...). It generates an X25519 keypair, reads a private key from package.json, and registers the derived public key on the Sepolia testnet via a smart contract (0xE390863Dac96a7118C71227C2b09B50cF602D31) using Alchemy (eth-sepolia[.]g[.]alchemy[.]com/v2/D2-TbkB2m05WXSnSDOCDI) and Infura (sepolia[.]infura[.]io/v3/dc7257d09fab42eca2c354c32fec1938) RPC endpoints. It then spawns a detached child process running a second obfuscated script (lib/withLoad.min.d.js) that polls the contract for encrypted chunks, decrypts them with AES-GCM, merges them into a binary, chmods it 755, and executes it — a remote code-execution dropper.

analyzed by
Leitwacht
first seen
Aug 13, 2026, 09:30 AM
analyzed
Aug 13, 2026, 09:31 AM

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.