autotel-audit@0.1.15
Malicious code in autotel-audit (npm)
Analysis
This package publishes as a routine OpenTelemetry/Autotel audit helper but is a self-propagating npm worm. Its unpacked size is roughly 110x larger than prior releases. index.js consists of a single eval() call wrapped around a Caesar-cipher (ROT) decoder applied to a ~620,000-element character-code array; decoding it produces an async loader that uses node:crypto AES-128-GCM to decrypt two embedded ciphertext blobs and execute them. The first decrypted stage downloads the Bun runtime from the official Bun GitHub releases archive into a temporary directory, marks it executable, and uses it to run the second, larger encrypted payload -- the worm body, which steals registry/cloud OIDC credentials and propagates by compromising other packages owned by stolen accounts. Execution is triggered at install time through a weaponized binding.gyp whose node-gyp source list runs node index.js via the <!(...) command-substitution form, so the payload fires during npm install even though package.json declares no lifecycle scripts.
- analyzed by
- Leitwacht
- first seen
- Jun 7, 2026, 06:40 PM
- analyzed
- Jun 28, 2026, 10:40 AM
- weekly installs
- 867
Related advisories
- autotel-hono@0.4.26
- executable-stories-jest@3.1.1
- autotel-mcp-instrumentation@29.0.2
- executable-stories-vitest@2.0.1
- autotel-backends@2.12.26
- autotel-drizzle@0.0.27
- autotel-adapters@0.3.5
- autotel-aws@0.13.10
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.