@immobiliarelabs/backstage-plugin-ldap-auth-backend@1.1.3
Malicious code in @immobiliarelabs/backstage-plugin-ldap-auth-backend (npm)
Analysis
This package ships an index.js that is a fully obfuscated multi-stage dropper rather than the Backstage LDAP auth plugin it claims to be. The entire file is a single eval() over a Caesar-shifted character-code array; decoding it reveals an async bootstrap that loads node:crypto and builds an AES-128-GCM decryptor. The first decrypted stage is a loader that, based on the host OS and CPU architecture, creates a temp directory and shells out to curl to download the standalone Bun JavaScript runtime (bun-v1.3.13) from GitHub releases, unzips it, and marks it executable. A second, much larger AES-128-GCM-encrypted blob is embedded in the same file and is decrypted to be run via that downloaded Bun runtime. Fetching an alternate JS runtime at execution time and decrypting a hidden payload to run through it is dropper behaviour with no legitimate purpose in an authentication plugin.
- analyzed by
- Leitwacht
- first seen
- Jun 26, 2026, 03:21 PM
- analyzed
- Jun 28, 2026, 10:42 AM
- weekly installs
- 651
Related advisories
- @immobiliarelabs/backstage-plugin-ldap-auth-backend@3.0.2 same package
- @immobiliarelabs/backstage-plugin-gitlab@2.1.2
- @immobiliarelabs/backstage-plugin-gitlab-backend@3.0.3
- @immobiliarelabs/backstage-plugin-gitlab@1.0.1
- free-anthropic-claude@5.3.0
- @quantum-ai/gemini-cli@0.45.1
- @diezyyasha/libsignal-node@2.2.8
- native-hello-plugin@1.2.0
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.