MAL-2026-12811 Malicious code in ts-poly-utls (npm)
Malicious package
Published
MAL-2026-12811 is a malicious package: ts-poly-utls (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-12811/ (Markdown: https://insights.sbomify.com/MAL-2026-12811/index.md)
- Package
- ts-poly-utls
- Registry
- npm
What is MAL-2026-12811?
MAL-2026-12811 is a malicious package in ts-poly-utls, published on 5 Aug 2026.
Official description
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.What should I do about MAL-2026-12811?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.