autotel-mcp@0.1.14
Malicious code in autotel-mcp (npm)
Analysis
The package ships its entire root index.js as an obfuscated self-decrypting dropper. The file is a single eval() call wrapping a Caesar-cipher (shift-19) string decoder applied to a numeric char-code array. Decoding yields an async IIFE that pulls in node:crypto and AES-128-GCM-decrypts a large embedded ciphertext blob using a key, IV and auth tag hardcoded in the source. The decrypted second stage imports node:child_process, fs, path and os and installs a globalThis.getBunPath() helper that: detects the host OS/architecture, creates a temp directory, downloads the Bun runtime binary (bun-v1.3.13) as a zip from a GitHub release URL using curl, unzips it, and marks the extracted binary executable (chmod 755), caching the path -- staging a downloaded executable to run a subsequent payload outside the Node process. The package presents itself as an OpenTelemetry MCP tool to appear legitimate; no benign reason exists for a telemetry helper to ship a doubly-obfuscated eval blob that fetches and chmods a foreign runtime binary at load time.
- analyzed by
- Leitwacht
- first seen
- Jun 7, 2026, 07:00 PM
- analyzed
- Jun 28, 2026, 06:30 AM
- weekly installs
- 2,043
Related advisories
- autotel-mcp@3.0.1 same package
- autotel-mcp@5.0.1 same package
- autotel-mcp@8.0.1 same package
- autotel-mcp@6.0.1 same package
- autotel-subscribers@10.0.1
- creditcard.js@3.0.60
- @immobiliarelabs/backstage-plugin-gitlab@2.1.2
- ai-sdk-ollama@0.13.1
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.