Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

@ecg-internal/js-react-i18nnpm

Advisory published Updated

@ecg-internal/js-react-i18n is a confirmed malicious npm package (MAL-2026-18209) that opens a backdoor for remote access (malicious versions 1.0.0, 1.0.1, 1.1.0…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @ecg-internal/js-react-i18n (npm)

MAL-2026-18209
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @ecg-internal/js-react-i18n

What this malware does

The package is published under an internal-looking scope (@ecg-internal) and ships a stub main module that returns a Proxy of no-op functions for every property access — it provides none of the i18n functionality its name implies. Its only real behavior is firing beacon.cjs, which executes both from the declared postinstall lifecycle script (node beacon.cjs) and from a top-level require('./beacon.cjs').fire() in the main module. beacon.cjs collects the installer's hostname (via os.hostname()), install path (__dirname), current working directory, Node.js version, and package name, and POSTs them over plain HTTP to the hardcoded bare-IP endpoint http://185.158.107.175:8787/_ah/dc. The destination is not a publisher-aligned domain and the shape — internal-looking scope + hollow functional surface + install- and import-time callback with host identifiers to a bare IP — is a dependency-confusion reconnaissance probe designed to identify internal build systems that resolve the private name from the public registry.

Malicious versions

5 flagged
1.0.01.0.11.1.02.0.099.0.1

Indicators of compromise (SHA-256)

4bdcd9582309ab36ac36d7408b1d15fa68f9a1e7830e00840f122dfd2951f693
52b3d7654df458abdeead84eb9031600002457377e7448941df461e4cbe581eb
533583f613bf03556a1660b5bd8eaf4d5899c96dc79f4c42ae6b883aea8fde0e
f5cf1eb6b3e96820660cc882257dc1babe6bd32b038887dfa88c8c415224f329
4c4aa9281580d6160a62c42077eeb52590ce56a0789ae03b2235a172c5404dd7

Detection & response playbook

Backdoor / remote access
  1. Find it

    Search your lockfiles and build artifacts for @ecg-internal/js-react-i18n (5 malicious versions).

  2. If you installed it — respond

    @ecg-internal/js-react-i18n establishes remote access, so treat any host that installed it as fully compromised. Isolate the machine, remove the package, rotate all credentials it could reach, and rebuild from a trusted image rather than cleaning in place — a backdoor may have planted additional persistence.

  3. Did it already run?

    If @ecg-internal/js-react-i18n was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. @ecg-internal/js-react-i18n on npm has been identified as a malicious package (versions 1.0.0, 1.0.1, 1.1.0, 2.0.0, 99.0.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-021616IN-MAL-2026-021614IN-MAL-2026-021617IN-MAL-2026-021613IN-MAL-2026-021615

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @ecg-internal/js-react-i18n-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the C2 callback and severs the channel.

Explore