Protet Intel / npm

Is @grabcad/preferences-client malicious?

Yes. Protet confirmed 2 versions of @grabcad/preferences-client as malicious

First confirmed on 2026-10-23.

Affected versions

VersionConfirmedProtet record
3.0.02026-10-23PROTET-NPM-2026-34
1.1.02026-10-23PROTET-NPM-2026-33

What it does

Install hook and require-time code send the host name and install paths to a hardcoded IP over HTTP

Installing @grabcad/preferences-client 3.0.0 runs the postinstall script node beacon.cjs. It sends an HTTP POST to http://185.158.107.175:8787/_ah/dc with the package name, the machine's host name, the install directory, the current working directory and the Node.js version. Loading the package runs the same report again from index.js. The package then exports a stub that returns empty no-op functions for every member, in place of any real functionality. The package name copies a private organisation scope, and the version numbers are inflated (up to 99.0.x) so that a resolver which also queries the public registry prefers this copy. The same beacon and endpoint appear in @cecm-web-sdk/core. Impact: any developer or CI machine that installs or imports the package discloses its host name and internal directory layout to a third party, and the build gets a non-functional stub instead of the intended internal library. Remediation: remove the package, pin the scope to the private registry (for example a scoped registry entry in .npmrc), and review build hosts that installed it for unexpected connections to 185.158.107.175.

From the record of version 3.0.0; each version page has its own.

Other reports

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-23: 1.1.0, 3.0.0 named by Protet Intel

Want to know if your own builds pull packages like this? Add the Protet GitHub Action.

Think this is wrong? Write to hello@protet.io and we will look at it. Feeds: NDJSON, Atom. How Protet Intel works.