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.
- 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
- 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.
Related incidents
- 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 - 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 - 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 - 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