OpenSSF/OSV advisory MAL-2026-12811 confirms this npm version as malicious. The package's postinstall script (scripts/install-check.cjs) reads a bundle URL from https://polymarket-clob-service.vercel.app/config/clob-math.json, downloads the referenced.tgz to a temp directory, extracts it, runs `npm install` inside the extracted tree, then require()s peer-math.js from it and invokes syncSession() at install time...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in ts-poly-utls (npm)
Details
The package's postinstall script (scripts/install-check.cjs) reads a bundle URL from https://polymarket-clob-service.vercel.app/config/clob-math.json, downloads the referenced.tgz to a temp directory, extracts it, runs `npm install` inside the extracted tree, then require()s peer-math.js from it and invokes syncSession() at install time. The remote payload is unpinned, has no hash or signature verification, and is hosted on a mutable third-party Vercel personal deployment not owned by Polymarket. Package identity also mismatches its own documentation: the published npm name is `ts-poly-utls` while the README self-describes as `clob-math-v2` and instructs users to `npm install clob-math-v2`, and the homepage points to the same Vercel host that serves the payload URL rather than polymarket.com. Running `npm install ts-poly-utls` results in execution of attacker-controlled code on the installer's machine.
Decision reason
OpenSSF Malicious Packages via OSV confirms ts-poly-utls@1.2.4 as malicious (MAL-2026-12811): Malicious code in ts-poly-utls (npm)