Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in @polymarkets/clob-client-v2 (npm)

@polymarkets/clob-client-v2 (npm) is a malicious package that typosquats the legitimate @polymarket scope and redirects its inquirer dependency to a lookalike npm registry (registrynpmjs.to) to deliver arbitrary code execution during installation and on first require.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or application that installed @polymarkets/clob-client-v2 from npm would execute malicious code during npm install and on first require of the inquirer dependency.
Ecosystems
Attack vectors
Affected entities
  • @polymarkets/clob-client-v2Malicious package published under typosquatted scope; redirects inquirer dependency to lookalike registry

The package @polymarkets/clob-client-v2 was published on npm as a typosquat of the legitimate Polymarket scope (@polymarket). The malicious package's package.json declares the inquirer dependency as an HTTPS tarball URL pointing to registrynpmjs.to, a lookalike domain of the real npm registry (registry.npmjs.org).\n\nWhen npm install is executed, npm fetches and installs whatever tarball the registrynpmjs.to host serves as the inquirer package into node_modules. The operator of registrynpmjs.to controls the code that runs via inquirer's install lifecycle hooks and on first require of the module.\n\nThis attack combines typosquatting (using @polymarkets instead of @polymarket) with dependency confusion and a lookalike registry to deliver malicious code to developers who install the package. The incident was identified by Amazon Inspector and credited to the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • @polymarkets/clob-client-v2
Domains
  • registrynpmjs.to

Remediation

  • Immediately remove @polymarkets/clob-client-v2 from all package.json files and lock files
  • Run npm audit to identify any installations of the malicious package
  • Review node_modules for any unexpected or suspicious packages, particularly inquirer from non-standard sources
  • Regenerate any credentials or secrets that may have been exposed during the installation of the malicious package
  • Verify the integrity of the legitimate @polymarket packages if used in your projects
  • Use npm package lock files and consider using npm ci instead of npm install to prevent unexpected dependency resolution

Sources

  1. GitHub Advisory GHSA-xq4g-rv84-pcvv · GitHub Advisory Database

Cite this entry

"Malicious code in @polymarkets/clob-client-v2 (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 14, 2026; last updated August 14, 2026. https://supplychainattack.org/incident/malicious-code-in-polymarkets-clob-client-v2-npm-1qjmx2

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. containedcritical

    Malicious code in bazelisk (npm)

    A malicious npm package named bazelisk, impersonating Google's legitimate bazelbuild/bazelisk project, was published with a postinstall script that exfiltrates system and environment information to an attacker-controlled server. The package exhibits dependency-confusion and typosquatting characteristics, collecting hostname, platform, architecture, Node version, and npm lifecycle event data.

    npmCompromised packageDependency confusionTyposquatting
  2. resolvedcritical

    Malicious code in localize-extract (npm)

    localize-extract@1.0.0 on npm contained malicious postinstall code that exfiltrated host identifiers to an attacker-controlled endpoint. The package name resembled @angular/localize, suggesting a dependency-confusion or typosquatting attack.

    npmCompromised packageTyposquattingDependency confusion
  3. resolvedcritical

    Malicious code in gaarf-node-bq (npm)

    gaarf-node-bq is a malicious npm package that acts as a dependency-confusion/typosquat canary targeting Google's internal gaarf package. The package's postinstall script collects host metadata and exfiltrates it to an external endpoint without user consent.

    npmDependency confusionTyposquattingCompromised package
  4. resolvedcritical

    Malicious code in ngsw-config (npm)

    A malicious npm package named ngsw-config was published to shadow Angular's legitimate tooling. The package's postinstall script collected and exfiltrated host identifiers (hostname, platform, architecture, Node version, package/lifecycle name, timestamp) to a hardcoded endpoint without consent or documentation, targeting dependency-confusion scenarios in internal build systems.

    npmCompromised packageTyposquattingDependency confusion