deBridge
Submit a BugProgram Overview
deBridge is a cross-chain interoperability and liquidity transfer protocol that allows decentralized transfer of data and assets between various blockchains. The deBridge protocol is an infrastructure platform and hooking service for:
- cross-chain composability of smart contracts
- cross-chain swaps
- bridging of any arbitrary asset and data
- interoperability and bridging of NFTs
More information about the project can be also found in the documentation portal or at the website https://debridge.finance/.
Examples of how users can interact with the protocol from the command line can be found in the repository: https://github.com/debridge-finance/debridge-contracts-v1/tree/main/examples.
Status of transactions can be tracked through the deBridge explorer.
This bug bounty program is focused on their smart contracts and is focused on preventing:
- Loss of user funds locked (principal) by freezing or theft
- Loss of governance funds
- Theft of unclaimed assets
- Permanent freezing of unclaimed assets
- Smart contract fails to deliver promised returns
- Unauthorized minting of wrapped assets that will lead them to loosing peg
Rewards by Threat Level
Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System V2.2. This is a simplified 5-level scale, with separate scales for websites/apps and smart contracts/blockchains, encompassing everything from consequence of exploitation to privilege required to likelihood of a successful exploit.
In addition to Immunefi’s Vulnerability Severity Classification System, deBridge classifies the following vulnerabilities as follows. In case of discrepancy, the one below will be followed.
Critical
- More than 5% of the loss of TVL or an unauthorized minting of deAssets in an amount that leads to substantial loss of the peg of the wrapped asset (Total supply of deAsset exceeds amount of underlying collateral locked for more than 5%)
High
- Up to 5% of the loss of TVL or an unauthorized minting of deAssets in an amount that leads to substantial loss of the peg of the wrapped asset (Total supply of deAsset is on up to 5% exceeds the amount of underlying collateral locked)
The following vulnerabilities/problems are not eligible for a reward:
- Default bridging functionality doesn’t support non-standard assets (e.g. rebase assets, assets with elastic supply or tokens with fees during transfer)
- If a user sets an incorrect receiver or fallback address he won’t be able to claim his transfer in the destination chain and funds might be locked forever
- If user passes REVERT_IF_EXTERNAL_FAIL flag and specifies "data" and "receiver address" params that will lead to tx being constantly reverted
- Framework used by the deBridge node exploitation of which requires knowledge of IP address unless information about IP address was obtained during the attack
- Problem with the callProxy smart contract when gas limit specified by claimer is not enough for the proper execution of the externalCall that leads to externalCall being reverted even though transaction itself is completed
Payouts are handled by the deBridge team directly and are denominated in USD. However, payouts are done in USDT and USDC, with the choice of the ratio at the discretion of the team.
Smart Contract
- Critical
- Level
- USD $200,000 and unique deBridge NFT
- Payout
- High
- Level
- USD $40,000
- Payout
- Medium
- Level
- USD $5,000
- Payout
Assets in scope
- Smart Contract - ProxyAdmin ETHType
- Smart Contract - ProxyAdmin BSCType
- Smart Contract - ProxyAdmin MATICType
- Smart Contract - ProxyAdmin HECOType
- Smart Contract - ProxyAdmin ARBIType
- Smart Contract - ProxyAdmin AVAXType
- Smart Contract - ProxyAdmin FTMType
- Smart Contract - deBridgeGate Proxy ETHType
- Smart Contract - deBridgeGate Proxy BSCType
- Smart Contract - deBridgeGate Proxy MATICType
- Smart Contract - deBridgeGate Proxy HECOType
- Smart Contract - deBridgeGate Proxy ARBIType
- Smart Contract - deBridgeGate Proxy AVAXType
- Smart Contract - deBridgeGate Proxy FTMType
- Smart Contract - deBridgeGate ETHType
- Smart Contract - deBridgeGate BSCType
- Smart Contract - deBridgeGate MATICType
- Smart Contract - deBridgeGate HECOType
- Smart Contract - deBridgeGate ARBIType
- Smart Contract - deBridgeGate AVAXType
- Smart Contract - deBridgeGate FTMType
- Smart Contract - deBridgeToken Proxy ETHType
- Smart Contract - deBridgeToken Proxy BSCType
- Smart Contract - deBridgeToken Proxy MATICType
- Smart Contract - deBridgeToken Proxy HECOType
- Smart Contract - deBridgeToken Proxy ARBIType
- Smart Contract - deBridgeToken Proxy AVAXType
- Smart Contract - deBridgeToken Proxy FTMType
- Smart Contract - deBridgeToken ETHType
- Smart Contract - deBridgeToken BSCType
- Smart Contract - deBridgeToken MATICType
- Smart Contract - deBridgeGate Proxy HECOType
- Smart Contract - deBridgeToken ARBIType
- Smart Contract - deBridgeToken AVAXType
- Smart Contract - deBridgeToken FTMType
- Smart Contract - deBridgeTokenDeployer ETHType
- Smart Contract - deBridgeTokenDeployer BSCType
- Smart Contract - deBridgeTokenDeployer MATICType
- Smart Contract - deBridgeTokenDeployer HECOType
- Smart Contract - deBridgeTokenDeployer ARBIType
- Smart Contract - deBridgeTokenDeployer AVAXType
- Smart Contract - deBridgeTokenDeployer FTMType
- Smart Contract - SignatureVerifier Proxy ETHType
- Smart Contract - SignatureVerifier Proxy BSCType
- Smart Contract - SignatureVerifier Proxy MATICType
- Smart Contract - SignatureVerifier Proxy HECOType
- Smart Contract - SignatureVerifier Proxy ARBIType
- Smart Contract - SignatureVerifier Proxy AVAXType
- Smart Contract - SignatureVerifier Proxy FTMType
- Smart Contract - SignatureVerifier ETHType
- Smart Contract - SignatureVerifier BSCType
- Smart Contract - SignatureVerifier MATICType
- Smart Contract - SignatureVerifier HECOType
- Smart Contract - SignatureVerifier ARBIType
- Smart Contract - SignatureVerifier AVAXType
- Smart Contract - SignatureVerifier FTMType
- Smart Contract - CallProxy Proxy ETHType
- Smart Contract - CallProxy Proxy BSCType
- Smart Contract - CallProxy Proxy MATICType
- Smart Contract - CallProxy Proxy HECOType
- Smart Contract - CallProxy Proxy ARBIType
- Smart Contract - CallProxy Proxy AVAXType
- Smart Contract - CallProxy Proxy FTMType
- Smart Contract - CallProxy ETHType
- Smart Contract - CallProxy BSCType
- Smart Contract - CallProxy MATICType
- Smart Contract - CallProxy HECOType
- Smart Contract - CallProxy ARBIType
- Smart Contract - CallProxy AVAXType
- Smart Contract - CallProxy FTMType
- Smart Contract - SimpleFeeProxy Proxy ETHType
- Smart Contract - SimpleFeeProxy Proxy BSCType
- Smart Contract - SimpleFeeProxy Proxy MATICType
- Smart Contract - SimpleFeeProxy Proxy HECOType
- Smart Contract - SimpleFeeProxy Proxy HECOType
- Smart Contract - SimpleFeeProxy Proxy AVAXType
- Smart Contract - SimpleFeeProxy Proxy FTMType
- Smart Contract - SimpleFeeProxy ETHType
- Smart Contract - SimpleFeeProxy BSCType
- Smart Contract - SimpleFeeProxy MATICType
- Smart Contract - SimpleFeeProxy HECOType
- Smart Contract - SimpleFeeProxy ARBIType
- Smart Contract - SimpleFeeProxy AVAXType
- Smart Contract - SimpleFeeProxy FTMType
- Smart Contract - WethGate ETHType
- Smart Contract - WethGate BSCType
- Smart Contract - WethGate MATICType
- Smart Contract - WethGate HECOType
- Smart Contract - WethGate AVAXType
- Smart Contract - WethGate FTMType
All smart contracts of deBridge can be found at https://github.com/debridge-finance/debridge-contracts-v1 at main branch. However, only those in the Assets in Scope table are considered as in-scope of the bug bounty program. For deBridge contracts (multiple instances on different chains), there will not be duplicated counting of bugs. One bug that exists in all contracts will be counted as a single bug.
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
- Direct theft of any user fundsCriticalImpact
- Permanent freezing of fundsCriticalImpact
- Protocol InsolvencyCriticalImpact
- Forgery of the content of the cross-chain messages sent through the protocolCriticalImpact
- Forgery of the sender address or chain_id of the cross-chain messages sent through the protocolCriticalImpact
- Unauthorized claim without valid signatures from deBridge validatorsCriticalImpact
- Unauthorized mint of the wrapped assets (deAssets)CriticalImpact
- Theft of funds (<5% TVL impact)HighImpact
- Permanent freezing of fundsHighImpact
- Temporary freezing of funds (more than 1 day freeze)HighImpact
- Smart contract unable to operate due to lack of token fundsMediumImpact
- Block stuffing for profitMediumImpact
- Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)MediumImpact
- Unbounded gas consumptionMediumImpact
Out of Scope & Rules
The following vulnerabilities are excluded from the rewards for this bug bounty program:
- 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)
Smart Contracts and Blockchain
- Incorrect data supplied by third party oracles
- Not to exclude oracle manipulation/flash loan attacks
- Basic economic governance attacks (e.g. 51% attack)
- Lack of liquidity
- Best practice critiques
- Sybil attacks
- Centralization risks
- Gas optimizations
The following activities are prohibited by this bug bounty program:
- Any testing with mainnet or public testnet contracts; all testing should be done on private testnets
- Any testing with pricing oracles or third party smart contracts
- 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