Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in polymarket-terminal (npm)

A coordinated supply-chain attack published 9 malicious npm packages by maintainer polymarketdev on 2026-05-20, masquerading as Polymarket CLOB trading tools. The packages exfiltrate Ethereum private keys via postinstall hooks to a Cloudflare Worker C2 endpoint, with adaptive evasion for CI/CD scanners and silent extraction from .env files.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Developers using any of the 9 malicious packages; Ethereum private keys exfiltrated to attacker-controlled C2; potential loss of funds for affected users.
Ecosystems
Attack vectors
Affected entities
  • polymarket-terminalPart of coordinated 9-package attack by maintainer polymarketdev (GitHub actor texsellix)

On 2026-05-20 at approximately 23:30–23:32 UTC, a coordinated supply-chain attack deployed 9 malicious npm packages published by maintainer polymarketdev (GitHub actor texsellix). All packages masquerade as legitimate Polymarket CLOB trading tools.

The attack uses a sophisticated postinstall hook (scripts/postinstall.mjs) with adaptive behavior: on non-interactive shells (typical in CI/CD scanners), it prints "polybot installed" and exits to evade detection. On interactive terminals, it displays a masked readline prompt soliciting the wallet private key. Additionally, the malware silently reads .env files in the current working directory and extracts the PRIVATE_KEY environment variable without user interaction.

Exfiltrated data is POSTed as plain JSON to a Cloudflare Worker C2 at https://polymarketbot.polymarketdev.workers.dev/v1/wallets/keys. The malware also establishes local persistence by creating ~/.polybot/ (mode 0700) containing device fingerprinting data (device.json) and wallet records (wallets.json). All 9 packages ship an identical dist/index.js (711 KB, SHA-256 e01b85c1437085a519217338fe4ee5ed7858c28a10f8c1477b2f18...), indicating a single coordinated campaign.

Indicators of compromise

Packages
  • polymarket-terminal
Domains
  • polymarketbot.polymarketdev.workers.dev

Remediation

  • Immediately revoke any Ethereum private keys that may have been exposed through use of polymarket-terminal or related packages from this maintainer
  • Audit npm package.json and lock files for any dependencies from polymarketdev or texsellix
  • Review .env files and environment variables for exposure of PRIVATE_KEY or other sensitive credentials
  • Check ~/.polybot/ directory for device.json and wallets.json artifacts indicating compromise
  • Monitor associated Ethereum addresses for unauthorized transactions
  • Report the malicious packages to npm security and GitHub for removal and maintainer account suspension
  • Use npm audit to identify and remove all affected packages from your project

Sources

  1. GitHub Advisory GHSA-p2r8-m4wp-j892 · GitHub Advisory Database

Cite this entry

"Malicious code in polymarket-terminal (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed May 20, 2026; last updated July 27, 2026. https://supplychainattack.org/incident/malicious-code-in-polymarket-terminal-npm-128311

Suggest a correction

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

  1. resolvedcritical

    Malicious code in blekit (npm)

    The npm package blekit contained malicious code that silently exfiltrated application logs, GPS coordinates, device identifiers, and security posture to an attacker-controlled Telegram channel. The package re-exported logger functions that POSTed all logged strings to Telegram, and exposed device-info helpers that gathered and transmitted precise location and device metadata without user or developer consent.

    npmCompromised packageMalicious maintainer
  2. activecritical

    Malicious code in aclade-agent (npm)

    The npm package aclade-agent contains malicious code that establishes a daemon polling a remote server (aclade.com) for arbitrary task execution, including bash commands, filesystem operations, and scheduled persistence. The package automatically updates itself globally, allowing any future compromise of the maintainer account to propagate automatically to all running instances.

    npmCompromised packageMalicious maintainer
  3. containedcritical

    Malicious code in agenthub-ai (npm)

    The npm package agenthub-ai contained malicious code that established a persistent WebSocket daemon connecting to a hardcoded remote server, enabling full host control including file operations, subprocess execution, and forced package updates. The package also used npm overrides to redirect Anthropic's native SDK bindings to a stub package under a different maintainer, creating a supply chain pivot point.

    npmCompromised packageMalicious maintainer
  4. resolvedcritical

    Malicious code in vite-vue-path-map (npm)

    The npm package vite-vue-path-map contained malicious code that injected obfuscated JavaScript into production builds. The injected code sent beacons to an attacker-controlled domain and could remotely deface any site built with the compromised plugin.

    npmCompromised packageMalicious maintainer