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

@ppa-web-components/ppa-buildernpm

Advisory published Updated

@ppa-web-components/ppa-builder is a confirmed malicious npm package (MAL-2026-18273) that opens a backdoor for remote access (malicious versions 0.0.1, 1.0.0, 1.0.1…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @ppa-web-components/ppa-builder (npm)

MAL-2026-18273
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @ppa-web-components/ppa-builder

What this malware does

@ppa-web-components/ppa-builder is a dependency-confusion package: it is described as a "Compatibility shim", uses inflated version numbers, and its README calls it an "authorized dependency-confusion test". Each listed version (0.0.1, 1.0.0, 1.0.1, 99.0.1, 2.0.1, 3.0.0) has a postinstall script that runs node beacon.cjs on npm install, and index.js calls the same code when the package is imported; it POSTs the hostname, install path and current working directory over plain HTTP to http://185.158.107.175:8787/_ah/dc, and index.js exports a Proxy that returns no-op functions so builds importing the real package keep running. The npm account wiseke published 14 such packages under the @greenlake, @sxm-web, @drone-js-ext and @ppa-web-components scopes between 2026-10-23 21:23 and 2026-10-25 14:28 UTC; index.js is byte-identical to that of ph-common (MAL-2026-1809), which sends to the same endpoint.

The package is described as a 'Compatibility shim' and ships a stub Proxy-based main plus beacon.cjs. The package.json declares scripts.postinstall: 'node beacon.cjs', and the main entry also invokes the same fire() routine on require. On both triggers, beacon.cjs collects installer identifiers — os.hostname(), __dirname (install path), process.cwd(), process.version, and the package name — and POSTs them in cleartext to the hardcoded bare-IP endpoint http://185.158.107.175:8787/_ah/dc. The destination is not a registry, publisher, or any documented infrastructure; it is a plain-HTTP bare IP with no TLS. An inline source comment states that a build that completes and calls back is cleaner evidence, confirming the artifact's purpose is to signal successful resolution and execution on installer machines. Combined with a scoped name resembling an internal namespace and no real library functionality, this matches the dependency-confusion / namesquat callback-probe shape.

Malicious versions

6 flagged
0.0.11.0.01.0.12.0.13.0.099.0.1

Indicators of compromise (SHA-256)

132a763229562f58056a9865006e3645b39657374a953534c63474e8ad54f8be
cc4615498b50aa4b5f39a8367c44e6a18d4a7272ae71235716a152b2933d5ddd
4dd7d889e247f630c5dbfbabe6472f5a6ad816b8f804a62fb0bc4921a4d18d1c
501a925b01ebc75de95ab24cb65ed8af8ccd493141cc774481b10ebaa3cc1a75
7ace2feda6b6a97f0c3ae2f0bf2e194b513b5394253a0677e1e2d05814710b3b
91fc13757f540f3474f7a2ee5335d3c9b7f45d21c016e62c2fe5209d45ea609c

Detection & response playbook

Backdoor / remote access
  1. Find it

    Search your lockfiles and build artifacts for @ppa-web-components/ppa-builder (6 malicious versions).

  2. If you installed it — respond

    @ppa-web-components/ppa-builder 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 @ppa-web-components/ppa-builder 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. @ppa-web-components/ppa-builder on npm has been identified as a malicious package (versions 0.0.1, 1.0.0, 1.0.1, 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-021662IN-MAL-2026-021668IN-MAL-2026-021665IN-MAL-2026-021666IN-MAL-2026-021664IN-MAL-2026-021667

References

Credits

  • Amazon Inspector · finder
  • InvisiRisk, Inc. · finder

Detect & block this

O3 blocks @ppa-web-components/ppa-builder-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