Threshold Network
Submit a BugProgram Overview
Threshold is the first ever on-chain merge between two existing networks and communities, Keep and NuCypher. The Threshold Network provides a suite of threshold cryptography products that power user sovereignty on the public blockchain. Threshold cryptography distributes sensitive operations across multiple independent entities, like nodes in a network. A successful operation requires a threshold or a minimum number of entities to cooperate. This simple idea increases security and availability and reduces reliance on trusted parties.Threshold is governed by a DAO whose parts hold separate responsibilities that are embedded in the governance structure. The Threshold DAO has two primary bodies: the Tokenholder DAO (based on the Governor Bravo governance model) and the Elected Council. The goal of this two-pronged structure is to enhance representation while ensuring accountability. Each governance body holds the other accountable, similar to the system of checks and balances found in most constitutional governments.
For more information about Threshold Network, please visit https://threshold.network/
For Whitehats: It is highly recommended that you review the details of this program in full. Although many Bug Bounty programs have standard terms and conditions, each also has their own unique details that are critical to your success.
Prior to submitting a report please review the Immunefi Bug Report Template and Best Practices.
Rewards by Threat Level
Please review how rewards are distributed based on the Immunefi Vulnerability Severity Classification System V2.3 This is a simplified 4-level scale system with separate scales for Smart Contracts and Websites/Apps.
Rewards for critical smart contract bug reports will be further capped at 10% of direct funds at risk if the bug discovered is exploited. However, there is a minimum reward of USD 10 000 and a max program cap of USD 500 000
Rewards for high smart contract bug reports will be further capped at 100% of direct funds at risk if the bug discovered is exploited. However, there is a minimum reward of USD 5 000 and a max cap of USD 50 000
Rewards for medium smart contract vulnerabilities with direct monetary impact are further capped at 100% of the funds at risk. However, there is a minimum reward of USD 1 000 and a max cap of USD 5 000
Rewards for critical web/app bug reports will be further capped at 10% of direct funds at risk if the bug discovered is exploited. However, there is a minimum reward of USD 5 000.
Rewards for high web/app bug reports will be further capped at 100% of direct funds at risk if the bug discovered is exploited. However, there is a minimum reward of USD 1 000.
Payouts and Payout Requirements
Payouts are handled by the Threshold DAO team directly and are denominated in USD. However, payouts are made in T. (https://www.coingecko.com/en/coins/threshold-network-token#markets).
The calculation of the net amount rewarded is based on the average price between CoinMarketCap.com and CoinGecko.com at the time the bug report was submitted. No adjustments are made based on liquidity availability. For avoidance of doubt, if the reward amount is USD 5 000 and the average price is USD 1.75 per token, then the reward will be 2857.142857 units of that token.
Threshold Network commits to honoring payouts according to the terms set out in this program at the time of report submission, and to treat this program as the agreement and source of truth concerning bug reports and responsible disclosures.
For the purposes of determining report validity, this is a Primacy of Rules program.
Learn more about report validity best practices here: Best Practice - Primacy of Impact vs Primacy of Rules.
Threshold Network would like to notify whitehats that payouts concerning high and critical reports may exceed the SLA established by Immunefi. These larger payouts could be delayed by a few hours or days, depending on the amount, to allow our governance process to fund the required payment, which can take up to 14 days. Threshold Network will inform the whitehat whenever this is the case, within the SLA timeframe, to manage expectations and provide clarity.
KYC Requirements:
Threshold Network does not have a Know Your Customer (KYC) requirement for bug bounty payouts.
Responsible Publication
Threshold adheres to category 2. This Policy determines what information whitehats are allowed to make public from their submitted bug reports. For more information about the category selected, please refer to our Responsible Publication page.
Audit Discoveries and Known Issues:
Bug reports covering previously-discovered bugs are not eligible for any reward through the bug bounty program. If a bug report covers a known issue, it may be rejected together with proof of the issue being known before escalation of the bug report via Immunefi.
Previous audits and known issues can be found at:
- https://leastauthority.com/blog/audits/audit-of-keep-network-tbtc-bridge-v2/
- https://www.certik.com/projects/threshold-network
- https://chainsecurity.com/security-audit/threshold-network/
- https://github.com/threshold-network/token-dashboard/issues
- https://github.com/threshold-network/solidity-contracts/issues
- https://github.com/keep-network/tbtc-v2/issues (refers to known issues related to tBTC v2 contracts)
Smart Contract
- Critical
- Level
- USD $10,000 to USD $500,000
- Payout
- High
- Level
- USD $5,000 to USD $50,000
- Payout
- Medium
- Level
- USD $1,000 to USD $5,000
- Payout
- Low
- Level
- USD $1,000
- Payout
Websites and Applications
- Critical
- Level
- USD $5,000 to USD $25,000
- Payout
- High
- Level
- USD $1,000 to USD $10,000
- Payout
- Medium
- Level
- USD $1,000
- Payout
Assets in scope
- Smart Contract - TType
- Smart Contract - VendingMachine (KEEP -> T)Type
- Smart Contract - VendingMachine (NU -> T)Type
- Smart Contract - TokenholderGovernorType
- Smart Contract - CumulativeMerkleDropType
- Smart Contract - TokenStakingType
- Smart Contract - BankType
- Smart Contract - BridgeType
- Smart Contract - BridgeType
- Smart Contract - TBTCVaultType
- Smart Contract - LightRelayType
- Smart Contract - WalletRegistryType
- Smart Contract - WalletRegistryType
- Smart Contract - EcdsaDkgValidatorType
- Smart Contract - SortitionPoolType
- Smart Contract - RandomBeaconType
- Smart Contract - BeaconDkgValidatorType
- Smart Contract - RandomBeaconGovernanceType
- Smart Contract - SortitionPoolType
- Smart Contract - ReimbursementPoolType
- Smart Contract - WalletRegistryGovernanceType
- Smart Contract - TBTCType
- Smart Contract - ERC20WithPermitType
- Smart Contract - BridgeGovernanceType
- Smart Contract - DonationVaultType
- Smart Contract - MaintainerProxyType
- Smart Contract - Wallet coordinatorType
- Smart Contract - tBTC v2 token on PolygonType
- Smart Contract - tBTC v2 Polygon gateway contractType
- Smart Contract - tBTC v2 token on OptimismType
- Smart Contract - tBTC v2 Optimism gateway contractType
- Smart Contract - tBTC v2 token on ArbitrumType
- Smart Contract - tBTC v2 Arbitrum gateway contractType
- Smart Contract - tBTC v2 token on BaseType
- Smart Contract - tBTC v2 Base gateway contractType
- Smart Contract - tBTCType
- Smart Contract - Wormhole gatewayType
- Websites and Applications - Threshold DashboardType
Impacts only apply to assets in active use by the project like contracts on mainnet or web/app assets used in production. Any impact that applies to assets not in active use, like test or mock files, are out-of-scope of the bug bounty program unless explicitly mentioned as in-scope.
All reports must be submitted in English.
Smart Contracts
- Smart Contracts - PoC, Smart Contract bug reports are to include a runnable Proof of Concept (PoC) in order to prove impact.
- For more information on PoCs please visit: Proof of Concept (PoC) Guidelines and Rules
- All smart contracts of Threshold Network can be found at:
Web/App
- Web/App - Bug reports are to include a runnable Proof of Concept (PoC) in order to prove impact.
- All web/app bug reports must come with a PoC with an end-effect impacting an asset-in-scope in order to be considered for a reward. All PoC content must adhere to the PoC guidelines and rules of Immunefi. In the event that a PoC requires an attack on a web/app asset provided, they must still adhere to the rules provided, otherwise eligibility for a reward may be revoked.
- For more information on PoCs please visit: Proof of Concept (PoC) Guidelines and Rules
- All codes of Threshold Network can be found at: https://github.com/threshold-network/token-dashboard
Whitehats are highly encouraged to review any potential subdomains and what specific port(s) are in scope. Even though the domain may be the same, different ports may point to different assets.
Dev Environment and Documentation
Threshold Network has included dev documentation and/or instructions to help in reviewing code and exploring for bugs:
- https://docs.threshold.network/resources/contract-addresses/goerli-testnet
- https://docs.threshold.network/staking-and-running-a-node/goerli-testnet-staking
- https://github.com/keep-network/tbtc-v2#installation
- https://github.com/keep-network/keep-core/tree/main/solidity/random-beacon#build
- https://github.com/keep-network/keep-core/tree/main/solidity/ecdsa#build
- https://github.com/threshold-network/solidity-contracts#build-test-and-deploy
Impacts to other assets
For the purposes of determining report validity, this is a Primacy of Rules program. However, hackers are encouraged to submit issues outside of the outlined Impacts and Assets in Scope.
If whitehats can demonstrate a critical impact on code in production for an asset not in scope, Threshold Network encourages you to submit your bug report and it will be assessed on a case-by-case basis.
Impacts in Scope
Impacts are based on the Immunefi Vulnerability Severity Classification System V2.3.
At Immunefi, we classify bugs on a simplified 4-level scale:
- Critical
- High
- Medium
- Low
Impacts in scope
Only the following impacts are accepted within this bug bounty program. All other impacts are not considered as in-scope, even if they affect something in the assets in scope table.
Smart Contract
- Manipulation of governance voting result deviating from voted outcome and resulting in a direct change from intended effect of original resultsCriticalImpact
- Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yieldCriticalImpact
- Permanent freezing of fundsCriticalImpact
- Protocol insolvencyCriticalImpact
- Theft of unclaimed yieldHighImpact
- Permanent freezing of unclaimed yieldHighImpact
- Temporary freezing of funds for more than 1 weekHighImpact
- Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)MediumImpact
- Contract fails to deliver promised returns, but doesn't lose valueLowImpact
Websites and Applications
- Execute arbitrary system commandsCriticalImpact
- Retrieve sensitive data/files from a running server such as: database passwords, blockchain keys, etc (this does not include non-sensitive environment variables, open source code, or usernames)CriticalImpact
- Taking state-modifying authenticated actions (with or without blockchain state interaction) on behalf of other users without any interaction by that user, such as: Changing registration information, Commenting, Voting, Making trades, Withdrawals, etc.CriticalImpact
- Subdomain takeover with already-connected wallet interactionCriticalImpact
- Direct theft of user fundsCriticalImpact
- Malicious interactions with an already-connected wallet such as: Modifying transaction arguments or parameters, Substituting contract addresses, Submitting malicious transactionsCriticalImpact
- Injecting/modifying the static content on the target application without Javascript (Persistent) such as: HTML injection without Javascript, Replacing existing text with arbitrary text, Arbitrary file uploads, etc.HighImpact
- Changing sensitive details of other users (including modifying browser local storage) without already-connected wallet interaction and with up to one click of user interaction, such as: Email or password of the victim, etc.HighImpact
- Injecting/modifying the static content on the target application without Javascript (Reflected) such as: Reflected HTML injection, Loading external site dataMediumImpact
- Redirecting users to malicious websites (Open Redirect)MediumImpact
- Taking down the application/websiteMediumImpact
Out of Scope & Rules
The following impacts and attack vectors are excluded from rewards by default for all Immunefi bug bounty programs:
- Attacks that the reporter has already exploited themselves, leading to damage
- Attacks requiring access to leaked keys/credentials
- Attacks requiring access to privileged addresses (governance, strategist), except in such cases where the contracts are intended to have no privileged access to functions that make the attack possible
- Vulnerabilities requiring unlikely user actions
Smart Contracts and Blockchain/DLT
- Basic economic governance attacks (e.g. 51% attack)
- Lack of liquidity
- Best practice critiques
- Sybil attacks
- Centralization risks
- Attacks that interact with either KEEP or NU legacy contracts
Websites and Apps
- Theoretical impacts without any proof or demonstration
- Content spoofing / Text injection issues
- Any impacts involving self-XSS
- Captcha bypass using OCR without impact demonstration
- Reflected plain text injection ex: url parameters, path, etc.
- This does not exclude reflected HTML injection without javascript
- This does not exclude persistent plain text injection
- CSRF with no state modifying security impact (ex: logout CSRF)
- CSRF with no security impact (logout CSRF, change language, etc)
- Missing HTTP Security Headers (such as X-FRAME-OPTIONS) or cookie security flags (such as “httponly”)
- Clickjacking / UI redressing with minimal impact
- Server-side information disclosure such as IPs, server names, and most stack traces
- Vulnerabilities used to enumerate or confirm the existence of users or tenants
- Vulnerabilities requiring un-prompted, in-app user actions that are not part of the normal app workflows
- Broken link hijacking is out of scope
- Lack of SSL/TLS best practices
- Attacks involving DOS and/or DDoS
- UX and UI impacts that do not materially disrupt use of the platform
- Attacks that require physical contact to the victims computer and/or wallet
- Attacks requiring privileged access from within the organization
- Attacks requiring access to the local network of the victim
- Subdomain takeover without already-connected wallet interaction
- Issues related to the frontend without concrete impact and PoC
- SPF records for email domains
- SPF/DMARC misconfigured records
- Leakage of non sensitive api keys ex: etherscan, Infura, Alchemy, etc.
- Improperly disclosing confidential user information such as email address, phone number, physical address, etc.
- Outdated software CVE reporting (eg JQuery)
- Taking over broken or expired outgoing links such as social media handles, etc.
- Automated scanner reports without demonstrated impact
- Non-future-proof NFT rendering
- UI/UX best practice recommendations
- Feature requests
- Best practices
Prohibited Activities
The following activities are prohibited by this bug bounty program. Violation of these rules can result in a temporary suspension or permanent ban from the Immunefi platform at the sole discretion of the Immunefi team, which may also result in: 1) the forfeiture and loss of access to all bug submissions, and 2) zero payout.
Please note that Immunefi has no tolerance for spam/low-quality/incomplete bug reports, “beg bounty” behavior, and misrepresentation of assets and severity. Immunefi exists to protect the global crypto community, not facilitate grift.
Prohibited:
- Any testing with mainnet or public testnet deployed code; all testing should be done on private testnets
- Attempting phishing or other social engineering attacks against our employees and/or customers
- Any testing with third party systems and applications (e.g. browser extensions) as well as websites (e.g. SSO providers, advertising networks)
- Any denial of service attacks
- Automated testing of services that generates significant amounts of traffic
- Public disclosure of an unpatched vulnerability in an embargoed bounty
- Any other actions prohibited by the Immunefi Rules. These rules are subject to change at any time.