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

@ecg-internal/aurora-js-formattersnpm

Advisory published Updated

@ecg-internal/aurora-js-formatters is a confirmed malicious npm package (MAL-2026-18207) that opens a backdoor for remote access (malicious versions 1.0.0, 2.0.0, 2.0.1…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @ecg-internal/aurora-js-formatters (npm)

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

What this malware does

The package uses an internal-looking scope (@ecg-internal) and an implausibly high version (99.0.1) consistent with dependency-confusion targeting. On install, the declared postinstall script executes beacon.cjs, which POSTs a JSON payload containing the package name, os.hostname(), __dirname install path, process.cwd(), and process.version to the hardcoded plain-HTTP bare-IP endpoint http://185.158.107.175:8787/_ah/dc. The main entry index.js additionally invokes beacon.cjs.fire() at top level on require/import, so the callback also fires when the module is loaded by a bundler or build process even if lifecycle scripts are disabled with --ignore-scripts. index.js exports a Proxy of no-op functions so consuming code and bundlers do not fail, allowing the beacon to run silently inside build pipelines. The destination IP is unrelated to any publisher infrastructure and has no TLS. The payload identifies the installing host and build environment to the operator of that endpoint, enabling enumeration of internal environments that resolved this scoped name from the public registry.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Malicious versions

5 flagged
1.0.02.0.02.0.13.0.099.0.1

Indicators of compromise (SHA-256)

02325fb617beffd55194047faca7300b33934cd471de94bab66a24954200cba0
2b9ca7557d8dd70d7b1ef0d885864394f8751643520637bf036092f3f9234538
38b207fd73b5b0f8409b6637afacc2254c2835eefb40e8071ea24885e62f1528
6f550b1552dd525f2a4cb1ad491222ec4889536d541985f80aa0b852cbf656ac
7c9c948c8ecc4f7bf0df48e329f05d916f0a877fe97cacf92eb5e1b79df11302
94a4e5ecd2deb013e2027af202dbb3f66e66f918dd31afc457853da0846eed2e
a62187d1781539a34c8628cdf04cf2797250060a55eddcc1736b7f04b21b5bfa

Detection & response playbook

Backdoor / remote access
  1. Find it

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

  2. If you installed it — respond

    @ecg-internal/aurora-js-formatters 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/aurora-js-formatters 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/aurora-js-formatters on npm has been identified as a malicious package (versions 1.0.0, 2.0.0, 2.0.1, 3.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-021611IN-MAL-2026-021609IN-MAL-2026-021618IN-MAL-2026-021610IN-MAL-2026-021608IN-MAL-2026-021612GHSA-9976-3w38-mrmj

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @ecg-internal/aurora-js-formatters-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