Is @ppa-web-components/ppa-hotel-collection malicious?
Yes. Protet confirmed 3 versions of @ppa-web-components/ppa-hotel-collection as malicious
First confirmed on 2026-10-25.
Affected versions
| Version | Confirmed | Protet record |
|---|---|---|
| 2.0.1 | 2026-10-25 | PROTET-NPM-2026-118 |
| 99.0.1 | 2026-10-25 | PROTET-NPM-2026-114 |
| 1.1.0 | 2026-10-25 | PROTET-NPM-2026-104 |
What it does
Dependency-confusion package sends hostname and install paths to a remote server at install time
@ppa-web-components/ppa-hotel-collection 2.0.1 is published under a name that matches a private internal package scope, at artificially high or unusual versions, so that build systems resolving the internal name from the public registry install it instead. Its package.json runs node beacon.cjs as a postinstall script. The script sends an HTTP POST to http://185.158.107.175:8787/_ah/dc with the package name, the machine's hostname, the install directory, the current working directory and the Node.js version, tagged with an x-beacon-package header. The package's entry point sends the same request again whenever it is loaded, and otherwise exports an empty stub, so the package has no legitimate functionality. Impact: any developer or CI machine that installs it discloses its hostname and filesystem layout to a third party, and confirms that the internal package name resolves from the public registry, which enables follow-up attacks with a harmful payload. Remediation: remove the package, scope internal package names to a private registry (or pin the scope to it), install with --ignore-scripts where possible, and block 185.158.107.175 on build hosts.
Other reports
- Also reported in OSV as MAL-2026-18275
What to do if you installed it
- Remove the package from every project that uses it, directly or through another dependency.
- Pin a clean version if you need the package: one that is not listed above and that you have checked yourself, or replace the package. A version missing from this page is not cleared.
- Check your lockfiles (
package-lock.json,yarn.lock,pnpm-lock.yaml) for the affected versions, including as a transitive dependency, and in CI caches. - Rotate credentials that were reachable from any machine or build that installed it: npm and GitHub tokens, cloud keys, SSH keys, and secrets in environment variables or CI settings.
Status history
- 2026-10-25: 1.1.0, 99.0.1, 2.0.1 named by Protet Intel