Polymarket

Polymarket

@polymarket
Live

Maximum reward

$5,000,000

Severity

Max. Reward

Critical

$5,000,000

High

$500,000

Medium

$50,000

Low

$5,000

Deposit required

$5

Findings submitted

95

Start date

12 Apr 2026

Please sign in as a researcher to join the bounty.

Log in

In scope

Severity

Min and Max Reward

Critical

$50,000 to $5,000,000


High

$10,000 to $500,000


Medium

$2,500 to $50,000


Low

$1,000 to $5,000


Informational
Discretionary

Network: All smart contracts are deployed on Polygon PoS (Chain ID: 137). Only vulnerabilities affecting mainnet deployments are eligible.

Critical Reward Calculation

Mainnet assets:

  • Reward amount is 10% of the funds directly affected up to a maximum of: $5,000,000
  • Minimum reward to discourage security researchers from withholding a bug report: $50,000
Name
Description
Asset
ConditionalTokens

Gnosis Conditional Tokens Framework (ERC1155). Manages all prediction market position tokens — condition preparation, position splitting/merging, payout reporting, and redemption. Uses ECMH for collection ID derivation. Holds all collateral backing positions. Third-party contract: only vulnerabilities arising from Polymarket's integration patterns are in scope.

CTFExchange

V1 hybrid-decentralized exchange for atomic order matching between CTF ERC1155 positions and ERC20 collateral. Supports 4 signature types (EOA, POLY_PROXY, POLY_GNOSIS_SAFE, POLY_1271). Includes fee handling, nonce management, and token registry.

FeeModule

Fee proxy that intercepts order matching, delegates to CTFExchange, and handles maker fee refunds based on BPS calculations. Admin-only matchOrders() and withdrawFees().

NegRiskAdapter

Core adapter for multi-outcome (negative risk) markets. Manages YES/NO position conversion, collateral splitting/merging/redemption via WrappedCollateral. Routes fees to Vault.

NegRiskCtfExchange

Modified CTFExchange for negative risk markets with pre-approved NegRiskAdapter interactions.

NegRiskFeeModule

Fee module variant for NegRiskCtfExchange with ERC1155 approvals for NegRiskAdapter interaction.

NegRiskOperator

Permissioned operator for market preparation, question resolution, and dispute flagging. Prevents multiple TRUE resolutions per market.

NegRiskUmaCtfAdapter

UmaCtfAdapter instance configured for NegRisk markets. Same codebase as UmaCtfAdapter.

NegRiskWrappedCollateral

RC20 wrapper around USDC.e enabling the NegRiskAdapter to manage collateral separately from ConditionalTokens. Permissionless unwrap; owner-restricted mint/burn.

ProxyFactory

Deploys deterministic (CREATE2) proxy wallets for Polymarket users. Integrates with Gas Station Network for relay functionality.

SafeFactory

eploys deterministic Gnosis Safe proxies for Polymarket users. EIP-712 signature verification for proxy creation.

UmaCtfAdapter

Oracle adapter integrating UMA's Optimistic Oracle for market resolution. Handles initialization, data requests, dispute escalation (2-hour proposal period, DVM escalation), and CTF condition resolution.

CollateralToken

UUPS upgradeable ERC20 (pUSD, 6 decimals). Wraps USDC/USDC.e. Role-based access: MINTER_ROLE for mint/burn, WRAPPER_ROLE for wrap/unwrap. Both proxy contract and implementation contract are in scope.

CollateralOnramp

Wraps USDC/USDC.e into pUSD (CollateralToken). Admin-gated with pausable per-asset functionality.

CollateralOfframp

Unwraps pUSD back to USDC/USDC.e. Admin-gated with pausable per-asset functionality.

PermissionedRamp

EIP-712 witness-signed wrap/unwrap for CollateralToken. Uses nonces for replay protection and deadline-based expiry.

CtfCollateralAdapter

Bridges pUSD and CTF for standard markets. Unwraps pUSD to USDC.e for CTF split operations, wraps back on merge. Pausable per-asset.

NegRiskCtfCollateralAdapter

Extends CtfCollateralAdapter for negative risk markets. Adds NO to YES position conversion via NegRiskAdapter.

CTFExchangeV2

V2 exchange with optimized assembly (EIP-712 hashing, event emission, address derivation). Three settlement paths: COMPLEMENTARY (P2P), MINT (split), MERGE. Adds UserPausable, preapproved orders, and builder metadata.

NegRiskCtfExchangeV2

V2 exchange variant for negative risk markets. Same as CTFExchangeV2 with pre-approved NegRiskAdapter interactions.

Vault

ERC20/ERC1155 token vault for protocol fees collected by NegRiskAdapter. Admin-controlled transfer functions.

Out of scope

Smart Contract Specific

  • Incorrect data supplied by third party oracles
    • Not to exclude oracle manipulation/flash loan attacks
  • Impacts requiring basic economic and governance attacks (e.g. 51% attack)
  • Lack of liquidity impacts
  • Impacts from Sybil attacks
  • Impacts involving centralization risks
  • Vulnerabilities in the Gnosis ConditionalTokens contract that do not specifically arise from or affect Polymarket's integration patterns (general Gnosis CTF bugs should be reported to Gnosis)
  • Issues requiring >$50M in capital to exploit with no practical economic incentive
  • Payout rounding precision loss in ConditionalTokens.redeemPositions() below $1 per redemption (known design tradeoff of integer division)

Web & App Specific

  • Theoretical impacts without any proof or demonstration
  • Impacts involving attacks requiring physical access to the victim device
  • Impacts involving attacks requiring access to the local network of the victim
  • Reflected plain text injection (e.g. url parameters, path, etc.)
    • This does not exclude reflected HTML injection with or without JavaScript
    • This does not exclude persistent plain text injection
  • Any impacts involving self-XSS
  • Captcha bypass using OCR without impact demonstration
  • CSRF with no state modifying security impact (e.g. logout CSRF)
  • Impacts related to missing HTTP Security Headers (such as X-FRAME-OPTIONS) or cookie security flags (such as "httponly") without demonstration of impact
  • Server-side non-confidential information disclosure, such as IPs, server names, and most stack traces
  • Impacts causing only the enumeration or confirmation of the existence of users or tenants
  • Impacts caused by vulnerabilities requiring un-prompted, in-app user actions that are not part of the normal app workflows
  • Lack of SSL/TLS best practices
  • Impacts that only require DDoS
  • UX and UI impacts that do not materially disrupt use of the platform
  • Impacts primarily caused by browser/plugin defects
  • Leakage of non sensitive API keys (e.g. Etherscan, Infura, Alchemy, etc.)
  • Any vulnerability exploit requiring browser bugs for exploitation (e.g. CSP bypass)
  • SPF/DMARC misconfigured records
  • Missing HTTP Headers without demonstrated impact
  • Automated scanner reports without demonstrated impact
  • UI/UX best practice recommendations
  • Non-future-proof NFT rendering
  • Using VPN to bypass geo-restrictions

All Categories

  • Impacts requiring attacks that the reporter has already exploited themselves, leading to damage
  • Impacts caused by attacks requiring access to leaked keys/credentials
  • Impacts caused by attacks requiring access to privileged addresses (including, but not limited to: governance and strategist contracts) without additional modifications to the privileges attributed
  • Impacts relying on attacks involving the depegging of an external stablecoin where the attacker does not directly cause the depegging due to a bug in code
  • Mentions of secrets, access tokens, API keys, private keys, etc. in Github will be considered out of scope without proof that they are in-use in production
  • Best practice recommendations
  • Feature requests
  • Impacts on test files and configuration files unless stated otherwise in the bug bounty program
  • Impacts requiring phishing or other social engineering attacks against project's employees and/or customers

Known Issues

  • Unfixed vulnerabilities from previous audits listed at the Polymarket contract-security repository
  • Audit reports and any unfixed vulnerabilities mentioned in these reports are not eligible for a reward:
  • Issues already recorded as self-reported bug submissions on the Cantina platform
  • Issues already submitted in Immunefi's bounty program
  • Known centralization risks in Auth modules (admin can add/remove other admins) — this is by design
  • ConditionalTokens uses Solidity ^0.5.1 without native overflow protection (SafeMath is used where needed) — this is a known design choice of the Gnosis CTF
  • Single oracle per condition in ConditionalTokens with no on-chain dispute mechanism — disputes are handled off-chain via UMA's Optimistic Oracle integration

Other Out-of-Scope Targets

In addition to the above, all items in the Cantina Bug Bounty Out-of-Scope Policy apply.