Information about Yearn's security processes, team members, disclosures, PGP keys and more can be found in the /yearn-security repo on Github.
Vulnerability disclosure process
Potential vulnerabilities are welcomed to be disclosed following the guidelines established in /yearn-security/SECURITY.md. Valid vulnerabilities may be eligible for bounty rewards.
The core contracts found in yearn-vaults repository have been audited by multiple independent third-party firms:
- MixBytes has audited v0.2.1, public report available here
- ChainSecurity has audited v0.3.5, public report unavailable
- Trail of Bits has audited v0.4.2, public report available here
Yearn is much bigger than its core, the DAO has a rigorous review process for its contracts, and retains independent auditors which review Strategies and other protocol components.
Other public reports can be found under yearn-security/audits.
Yearn as a protocol hinges on the critical assumption that the
Governance role is honest. This role is currently controlled by a 6 of 9 Gnosis Safe multisig.
A compromised or malicious Governance can cause catastrophic damage across the entire protocol.
It is a conscious design decision that this role is not behind a time lock. Priority is given to the ability to rapidly update and iterate on live vaults, strategies, and other components. Both so as not to advertise new investment strategies in advance, but also in order to rapidly improve our existing components without interruption. It also avoids downtimes whenever there is a bug or security vulnerability that needs to be fixed.
Governance to be honest is a pre-requisite in order to be able to trust Yearn's vaults.
Modifications to these design decisions can be proposed in the forum through Yearn's governance process.
Vault tests are done using brownie and the ganache CLI development network.
To see test coverage you can have a look at the CI you must look for a run that runs
Run build test_duration. The tests are run once a month together to compute the duration cache, then they are split into several test pipelines to speed up testing.