MAL-2026-10230
Malicious code in enbd-react-lib (npm)
Details
The enbd-react-lib package was published to the npm registry by user 'click2ai' (maintainer email privatek3m@protonmail.com) as part of a dependency-confusion / reconnaissance campaign. The package name mimics the internal/private package naming convention of a target organization (an 'enbd' internal namespace (Emirates NBD-style naming)) so that a misconfigured resolver installs this public lookalike instead of the intended private dependency.
The package declares a preinstall hook ("npm install @sentry/node && node examples/verify.js") that executes automatically at npm install time, before any application code runs. The bundled examples/verify.js initializes the @sentry/node client against a hardcoded, attacker-controlled Sentry DSN with sendDefaultPii enabled, resolves the installing host's public egress IP address by requesting Cloudflare's /cdn-cgi/trace endpoint (using a spoofed desktop-browser User-Agent to bypass bot challenges), then deliberately triggers a runtime exception and captures it. Flushing the event beacons the collected host telemetry (public IP plus Sentry default PII such as hostname, OS username and runtime/environment metadata) to the attacker's Sentry ingest endpoint at o4510485815754752.ingest.us.sentry.io.
Each impersonated namespace in the campaign beacons to a distinct Sentry project ID, letting the operator attribute successful installs to specific victim organizations — behaviour consistent with a dependency-confusion reconnaissance beacon rather than legitimate error monitoring. The install-time payload is byte-for-byte identical across all packages published by this account, differing only in the package name and the target DSN. This package's beacon targets Sentry project 4511675212038149.
--- _-= Per source details. Do not edit below this line.=-_
## Source: amazon-inspector (2ec45d22887d4ddcc03726e5614da388502600168d59bfa7a12453a90c22fc00) Package `enbd-react-lib@8.0.0` declares a `preinstall` script that runs `node examples/verify.js`. That script initializes Sentry with `sendDefaultPii: true` against a hardcoded DSN pointing at `o4510485815754752.ingest.us.sentry.io/4511675212038149` (author-controlled Sentry project), resolves the installer's public IP via `cloudflare.com/cdn-cgi/trace`, attaches it via `setUser({ip_address})`, triggers a synthetic exception, and flushes the event. As a result, every `npm install` causes the installer's public IP and host/error context to be sent to the author's Sentry project without any opt-in. Additionally, `src/index.js` (the package `main`) hardcodes the same DSN as `DEFAULT_DSN` and is used whenever a downstream caller invokes `init()` without supplying their own `dsn` or `SENTRY_DSN`, silently relaying consumer application exceptions, user data, and IPs to the same author-controlled Sentry ingest endpoint rather than the caller's own project. The package name (`enbd-react-lib`) evokes an internal Emirates NBD React library, but the shipped code is a generic Sentry wrapper with no ENBD- or React-related functionality — consistent with a lure targeting Emirates NBD developers or CI systems.
Are you affected?
Enter the version of the package you're using.
Affected packages
0 No fixed version published yet for enbd-react-lib (npm). Pin to a known-safe version or switch to an alternative.