Protet Intel / npm

Is contracts-upgradeable malicious?

Yes. Protet confirmed 1 version of contracts-upgradeable as malicious

First confirmed on 2026-11-07.

Affected versions

VersionConfirmedProtet record
1.0.02026-11-07PROTET-NPM-2026-172

What it does

contracts-upgradeable takes the unscoped name of @openzeppelin/contracts-upgradeable. Its preinstall script runs 'node preinstall.js' on npm install, which sends the machine's hostname, the OS user name and the local time by HTTPS POST to a hardcoded Discord webhook. It has no functional code. Remove the package and treat the hostnames and user names of affected machines as disclosed. Also listed as MAL-2026-18451.

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-11-07: 1.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.