Wild Credit
Submit a BugProgram Overview
Wild Credit is a lending protocol with isolated lending pairs. With traditional “basket-based” lending protocols such as Compound, the ability to add new assets is tightly controlled. If a single asset is exploited, it can potentially compromise all users of the protocol. This creates the incentive for these basket-based protocols to focus on the most popular low-risk assets and leave out everything else.
Using isolated lending pairs, lenders can decide which pairs they are comfortable with and provide liquidity only to those. Just like on Uniswap, users of Wild Credit are also free to create lending pairs for any asset permissionlessly.
For example, providing DAI on DAI-MIR may have a higher interest rate than providing DAI on DAI-ETH due to a higher risk. It’s up to the LPs to make their own choices. For more information about WildCredit, please visit https://wild.credit/.
The bug bounty program covers its smart contracts and apps and is focused on receiving bug reports of the following impacts:
- Thefts and freezing of principal of any amount
- Thefts and freezing of unclaimed yield of any amount
- Loss of user funds staked (principal) by freezing or theft
- Theft of unclaimed yield
- Freezing of unclaimed yield
- Temporary freezing of funds
- Unable to call smart contract
- Smart contract fails to deliver promised returns
Rewards by Threat Level
Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System. 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.
Critical vulnerabilities for smart contract and blockchain vulnerabilities only get the classification if they have an impact of USD 100 000 or greater. If the impact is below that amount, the bug report is reclassified as High even if it would normally classify as Critical. Additionally, a critical bug report can be reclassified as High if it involves the gradual loss of funds for the protocol or the user over multiple blocks due to any miscalculation. (E.g. miscalculated interest, debt, rewards, etc.)
The full critical payout only applies if >$100k of user funds can be stolen.
The final decision on the reward is under the discretion of the WildCredit team.
Payouts are handled by the Wild Credit team directly and are denominated in USD. Payouts are done in USDC.
Smart Contracts and Blockchain
- Critical
- Level
- Up to USD $100,000
- Payout
- high
- Level
- USD $5,000 - USD $10,000
- Payout
- medium
- Level
- USD $1,000 - USD $5,000
- Payout
- low
- Level
- Up to USD $1,000
- Payout
Assets in Scope
For added reference, please take a look at their GitHub - https://github.com/WildCredit/contracts. However, only the contracts listed as in-scope here are considered as part of the bug bounty program.
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 Contracts
- Loss of user funds staked (principal) by freezing or theft
- Freezing of unclaimed yield
- Temporary freezing of funds
- Unable to call smart contract
- Smart contract fails to deliver promised retuns
- Smart Contract - Controller
- Type
- Smart Contract - Interest Rate Model
- Type
- Smart Contract - LP Token Master
- Type
- Smart Contract - Lending Pair
- Type
- Smart Contract - Link Price Oracle
- Type
- Smart Contract - Oracle Aggregator
- Type
- Smart Contract - Pair Factory
- Type
- Smart Contract - Reward Distribution
- Type
- Smart Contract - Transfer Helper
- Type
- Smart Contract - Uniswap V3 Oracle
- Type
- Smart Contract - IController
- Type
- Smart Contract - IERC-20
- Type
- Smart Contract - IFeeConverter
- Type
- Smart Contract - IFeeRecipient
- Type
- https://github.com/WildCredit/contracts/blob/master/contracts/interfaces/IInterestRateModel.sol
- Target
- Smart Contract - IInterestRateModel
- Type
- Smart Contract - ILPTokenMaster
- Type
- Smart Contract -ILendingPair
- Type
- Smart Contract - ILinkOracle
- Type
- Smart Contract - IPairFactory
- Type
- Smart Contract - IPriceOracle
- Type
- https://github.com/WildCredit/contracts/blob/master/contracts/interfaces/IRewardDistribution.sol
- Target
- Smart Contract - IRewardDistribution
- Type
- Smart Contract - IUniswapPair
- Type
- https://github.com/WildCredit/contracts/blob/master/contracts/interfaces/IUniswapPriceConverter.sol
- Target
- Smart Contract - IUniswapPriceConverter
- Type
- Smart Contract - IUniswapRouter
- Type
- https://github.com/WildCredit/contracts/blob/master/contracts/interfaces/IUniswapV3Factory.sol
- Target
- Smart Contract - IUniswapV3Factory
- Type
- Smart Contract - IUniswapV3Pool
- Type
- Smart Contract - IWETH
- Type
- Smart Contract - Address
- Type
- Smart Contract - Clones
- Type
- Smart Contract - ERC-20
- Type
- Smart Contract - Math
- Type
- Smart Contract - Ownable
- Type
- Smart Contract - WILD
- Type
- Smart Contract - Factory
- Type
- Smart Contract - Controller
- Type
- Smart Contract - Reward Distribution
- Type
- Smart Contract - MasterPool
- Type
- Smart Contract - VaultFactory
- Type
- Smart Contract - VaultController
- Type
- Smart Contract - VaultMaster
- Type
Prioritized Vulnerabilities
We are especially interested in receiving and rewarding attacks of the following types, as long as they result in the impacts in scope:
Smart Contracts and Blockchain
- Economic/financial attacks
- Re-entrancy
- Logic errors
- including user authentication errors
- Solidity/EVM details not considered
- including integer over-/under-flow
- including unhandled exceptions
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
- Cases containing tokens with non-standard ERC20 implementation such as transfer fees
- Misuse of privileged admin access
- Cases involving black swan events or multi-block price manipulation (single-block attacks such as those involving the use of flash loans are still acceptable). E.g. buying a lot of low-cap token on Uniswap over the course of an hour, borrowing more than what’s a “fair” value as a result, then selling the token to Uniswap again.
- Uniswap oracle not working due to low liquidity or being outdated (not enough recent Uniswap trades). Chainlink feeds not being updated or access to them becoming private.
The following activities are prohibited by the 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