Yearn Finance is a suite of products in Decentralized Finance (DeFi) that provides lending aggregation and yield generation on the Ethereum blockchain. The protocol is maintained by various independent developers and is governed by YFI holders. Their products include:
Vaults Capital pools that automatically generate yield based on opportunities present in the market. Vaults benefit users by socializing gas costs, automating the yield generation and rebalancing process, and automatically shifting capital as opportunities arise. End users also do not need to have a proficient knowledge of the underlying protocols involved or DeFi, thus the Vaults represent a passive-investing strategy.
The bug bounty program is focused around its smart contracts and is mostly concerned with the prevention of the loss of user funds.
Verification of Yearn Finance's bug bounty program on Immunefi is available atSee verification
Rewards by Threat Level
Rewards for Smart Contract vulnerabilities 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.
To determine the final reward amount, the likelihood to have a meaningful impact on availability, integrity, and/or loss of funds is considered. The final decision on the payout amount will be determined by the Yearn Finance team at its discretion.
Payouts are handled by the Yearn Finance team directly and are denominated in USD. Payouts can be made in USDC, DAI, ETH, YFI, or their Yearn Vault counterparts.
Smart Contracts and Blockchain
- USD $20,000 - $USD 200,000
- USD $5,000 - $USD 20,000
- USD $1,000 - USD $5,000
- USD $100 - USD $1,000
Assets in Scope
Yearn adds and removes Vaults and Strategies from Production on an ongoing basis. This assets in scope table includes onchain lists of smart contracts for which all contracts within them are considered as in-scope of the bug bounty program.
The following functions can be called to obtain a list of smart contract addresses that are currently in Production and that are covered by the program:
StrategiesHelper - assetsStrategiesAddresses()
AddressesGeneratorV2Vaults - assetsAddresses()
AddressesGeneratorIronBank - assetsAddresses()
Other contracts, outside of the ones mentioned here, might be considered on a case by case basis, as long as economic damage can be achieved.
For more further information about these smart contracts, please refer to their GitHub repository - https://github.com/yearn/yearn-vaults. Additionally, you may refer to https://yearn.watch and https://yearn.watch/stats for more information about each smart contract.
In order to be considered for a reward, all bug reports must contain the following:
- Description of suspected vulnerability
- Steps to reproduce the issue
- Your name and/or colleagues if you wish to be later recognized
- (Optional) A patch and/or suggestions to resolve the vulnerability
Ethical Behavior Requirements
Responsible disclosure is predicated on ethical behavior. These guidelines outline best practices for the community as whole, whether you are reporting, or the recipient of a report. By stating that you adhere to this policy, you’re claiming to handle vulnerability information ethically, and abide by the following:
- Do not attempt to leverage a vulnerability, or information of its existence, as part of a financial trading strategy or otherwise for financial gain.
- Do not attempt to compromise systems upon which development of a product relies; including but not limited to compromising development systems, accounts, domains, email etc..
- Do not attempt to sell vulnerability information or exploits.
- Do not ask for any form of compensation from an affected party. You may compensate a disclosing party if you would like to after all known vulnerability details have been disclosed.
- Do not disclose a bug or vulnerability on mailing lists, public boards, forums, social media or any other channel prior to Responsibly Disclosing to the organizations you have a published relationship with
- Do not attempt any illegal acts, including phishing, physical attacks, DDoS, or any attempt to gain access without authorization
3rd Party Affected Projects
In the case where we become aware of security issues affecting other projects that has never affected Yearn, our intention is to inform those projects of security issues on a best effort basis.
In the case where we fix a security issue in Yearn that also affects the following neighboring projects, our intention is to engage in responsible disclosures with them as described in the adopted standard, subject to the deviations described in the deviations section below.
Deviations from the Standard
In the case of a counterfeiting or fund-stealing bug affecting Yearn, however, we might decide not to include those details with our reports to partners ahead of coordinated release, as long as we are sure that they are not vulnerable.
- Smart Contract - StrategiesHelper - list of production strategy addresses
- Smart Contract - AddressesGeneratorV2Vaults - list of endorsed v2 vault addresses
- Smart Contract - AddressesGeneratorIronBank - list of iron bank market addresses
We are especially interested in receiving and rewarding vulnerabilities of the following types:
- Logic errors
- including user authentication errors
- Solidity/EVM details not considered
- including integer over-/under-flow
- including unhandled exceptions
- Trusting trust/dependency vulnerabilities
- including composability vulnerabilities
- Oracle failure/manipulation
- Novel governance attacks
- Economic/financial attacks
- including flash loan attacks
- Congestion and scalability
- including running out of gas
- including block stuffing
- including susceptibility to frontrunning
- Consensus failures
- Cryptography problems
- Signature malleability
- Susceptibility to replay attacks
- Weak randomness
- Weak encryption
- Susceptibility to block timestamp manipulation
- Missing access controls / unprotected internal or debugging interfaces
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)
- 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
The rules of this bug bounty are as follows:
- Bug has not been publicly disclosed.
- Vulnerabilities that have been previously submitted by another contributor or already known by the Yearn development team are not eligible for rewards.
- The size of the bounty payout depends on the assessment of the severity of the exploit. Please refer to the rewards section below for additional details.
- Bugs must be reproducible in order for us to verify the vulnerability.
- Rewards and the validity of bugs are determined by the Yearn security team and any payouts are made at their sole discretion.
- Terms and conditions of the Bug Bounty program can be changed at any time at the discretion of Yearn.
- Details of any valid bugs may be shared with complementary protocols utilized in the Yearn ecosystem in order to promote ecosystem cohesion and safety.
Bug Bounty FAQ
Q: Is there a time limit for the Bug Bounty program? A: No. The Bug Bounty program currently has no end date, but this can be changed at any time at the discretion of Yearn.
Q: Can I submit bugs anonymously and still receive payment? A: Yes. If you wish to remain anonymous you can do so and still be eligible for rewards as long as they are for valid bugs. Rewards will be sent to the valid Ethereum address that you provide.
Q: Can I donate my reward to charity? A: Yes. You may donate your reward to a charity of your choosing, or to a gitcoin grant.