Polymarket
Maximum reward
$5,000,000
Severity
Max. Reward
Critical$5,000,000
High$250,000
Medium$10,000
Low$1,000
Deposit required
$5
Findings submitted
980
Start date
12 Apr 2026
KYC
Required to join
Please sign in as a researcher to join the bounty.
Log inIn scope
Severity
Min and Max Reward
Critical$50,000 to $2,500,000
High
$10,000 to $50,000
Medium
$1,000 to $10,000
Low
$500 to $1,000
Network: All smart contracts are deployed on Polygon PoS (Chain ID: 137). Only vulnerabilities affecting mainnet deployments are eligible.
This tier covers bounded money flows and shared infrastructure that can affect many users without owning the protocol-wide position or backing ledger.
The shared Smart Contract Tier Rules in the program instructions apply to this tier.
Name | Description | Asset |
|---|---|---|
| DepositWalletFactory implementation (current) | Current DepositWalletFactory implementation. | |
| DepositWalletFactory implementation (legacy, while reachable) | Legacy DepositWalletFactory implementation, in scope while reachable under the Smart Contract Tier Rules. | |
| BeaconForwarder | Beacon forwarder used by the scoped DepositWallet beacon system. | |
| DepositWallet proxies | All wallets deployed by the scoped factory, both legacy ERC-1967 and beacon-backed. | - |
| DepositWallet beacon | Implementation pointer for every DepositWallet beacon proxy. Owner is expected to be a timelock. | |
| DepositWallet beacon implementation (current) | Minimal smart-contract wallet for deposit operations. | |
| FeeModule | Fee proxy that intercepts order matching, delegates to CTFExchange, and handles maker fee refunds based on BPS calculations. Admin-only matchOrders() and withdrawFees(). | |
| CollateralOfframp | Unwraps pUSD back to USDC/USDC.e. Admin-gated with pausable per-asset functionality. | |
| DepositWallet implementation (legacy UUPS, while any deployed wallet can execute it) | UUPS-upgradeable smart-contract wallet (logic contract) behind per-user ERC-1967 proxies deployed by the factory. Supports EIP-712 signed batch execution (owner or session signer), ERC-1271 signature validation, two-step ownership transfers, an owner-controlled pause + timelock for emergency asset recovery, and factory-gated UUPS upgrades. | |
| CollateralOnramp | Wraps USDC/USDC.e into pUSD (CollateralToken). Admin-gated with pausable per-asset functionality. | |
| DepositWalletFactory proxy | User-facing ERC-1967 proxy holding all factory state. UUPS upgrades are restricted to the factory owner. Both this proxy and the DepositWalletFactory implementation are in scope. | |
| AutoRedeemer | Batch auto-redemption helper that lets authorized operators redeem resolved V2 and legacy CTF/NegRiskAdapter positions on behalf of users that have approved this contract. | |
| NegRiskCtfCollateralAdapter 1 | Extends CtfCollateralAdapter for negative risk markets. Adds NO to YES position conversion via NegRiskAdapter. | |
| SafeFactory (including deployed proxies) | Deploys deterministic Gnosis Safe proxies for Polymarket users and uses EIP-712 signature verification for proxy creation. | |
| CtfCollateralAdapter 2 | Bridges pUSD and CTF for standard markets. Unwraps pUSD to USDC.e for CTF split operations, wraps back on merge. Pausable per-asset. | |
| NegRiskFeeModule | Fee module variant for NegRiskCtfExchange with ERC1155 approvals for NegRiskAdapter interaction. | |
| NegRiskCtfCollateralAdapter 2 | Extends CtfCollateralAdapter for negative risk markets. Adds NO to YES position conversion via NegRiskAdapter. | |
| PermissionedRamp | EIP-712 witness-signed wrap/unwrap for CollateralToken. Uses nonces for replay protection and deadline-based expiry. | |
| CtfCollateralAdapter 1 | Bridges pUSD and CTF for standard markets. Unwraps pUSD to USDC.e for CTF split operations, wraps back on merge. Pausable per-asset. | |
| Router | User-facing split/merge/redeem router (and NegRisk horizontal entry points) using the pre-transfer pattern to mint/burn directly through modules. | |
| ProxyFactory (including deployed proxies) | Deploys deterministic (CREATE2) proxy wallets for Polymarket users. Integrates with Gas Station Network for relay functionality. |
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)
- Loss of pUSD, USDC, or other collateral tokens that are directly donated or transferred into a contract externally
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
In case of an internally known issue, we will mark the report acknowledged and provide, with that decision, an artifact predating the submission: a tracker ticket, commit, internal report, or dated design note. Such issues are not eligible for a reward.
- 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:
- Ctf-Exchange-v2: https://github.com/Polymarket/ctf-exchange-v2/tree/main/audits
- 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
- Polymarket’s routine automated and AI-powered security checks run independently of researcher submissions. A seven-day buffer applies from submission: findings independently identified by these checks during that period are out of scope and ineligible for rewards.
In addition to the above, all items in the Cantina Bug Bounty Out-of-Scope Policy apply.