@ppa-web-components/ppa-banner@3.0.0
Malicious code in @ppa-web-components/ppa-banner (npm)
Analysis
This package installs a callback beacon. Its package.json declares `"postinstall": "node beacon.cjs"`, and index.js additionally invokes the same beacon whenever the module is required, so the callback fires both at install time and on import. beacon.cjs POSTs a JSON body to hxxp://185[.]158[.]107[.]175:8787/_ah/dc with the header X-Beacon-Package: @ppa-web-components/ppa-banner. The body contains the package name, os.hostname(), __dirname (the install path), process.cwd(), the npm/node user agent string and the protocol. The request is fire-and-forget: errors and a 5-second timeout are swallowed so the install never fails or surfaces the callback. index.js exports a defensive Proxy that returns no-op functions for any property access, so a bundler importing the real package name completes its build instead of crashing. The package is a four-file, ~2.9 KB shim whose only function is to report the host and install location of every machine that installs it to a hardcoded IP address over plain HTTP.
- analyzed by
- Leitwacht
- first seen
- Oct 25, 2026, 03:50 PM
- analyzed
- Oct 25, 2026, 03:51 PM
Related advisories
- @eforms/forms-api@99.0.0
- mocha-ui-themes@1.0.0
- ionic-insta-api-wrapper@1.3.4
- postcss-semantic-themes@1.0.0
- insta-api-wrapper@1.1.0
- ionic-insta-api-wrapper@1.2.1
- passport-platform@0.1.0
- @ecg-internal/media-util-js-lib@2.0.0
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.