Omniscia Olympus DAO Audit
Manual Review
Manual Review
A thorough line-by-line review was conducted on the codebase to identify potential malfunctions and vulnerabilities in the version 2 iteration of the Olympus DAO protocol.
As the project at hand implements a complex system architecture of a three token system and a bond pricing mechanism, intricate care was put into ensuring that the flow of funds within the system conforms to the specifications and restrictions laid forth within the protocol's specification.
We validated that all state transitions of the system occur within sane criteria and that all rudimentary formulas within the system execute as expected. We pinpointed certain misconceptions within the system which could have had severe ramifications to its overall operation when exploited under the right circumstances, however, they were conveyed ahead of time to the Olympus DAO team to be promptly remediated.
Additionally, the system was investigated for any other commonly present attack vectors such as re-entrancy attacks, mathematical truncations, logical flaws and ERC / EIP standard inconsistencies. The documentation of the project was satisfactory to a certain extent, however, we strongly recommend the documentation of the project to be expanded at certain complex points such as the mathematical operations surrounding the pricing of debt ratios utilizing the undocumented decode112with18
function.
A total of 73 findings were identified over the course of the manual review of which 39 findings concerned the behaviour and security of the system. The non-security related findings, such as optimizations, are included in the separate Code Style chapter.
The finding table below enumerates all these security / behavioural findings:
ID | Severity | Addressed | Title |
---|---|---|---|
BDY-01M | Major | No | Improper Bond Price Assumption |
BDY-02M | Medium | No | Inexistent Validation of Terms |
BDY-03M | Medium | No | Inexplicable Optional Value of Decay |
BTR-01M | Major | Yes | Confusion of Value Denominations |
BTR-02M | Medium | No | Artificial Inflation Mechanism |
BTR-03M | Minor | Yes | Inexistent Redemption of FEO Fees |
BTR-04M | Minor | No | Inexistent Validation of Non-Zero Redemption |
ERC-01M | Minor | Yes | Non-Standard Mint Implementation |
ERP-01M | Medium | Yes | Insecure Elliptic Curve Recovery Mechanism |
ERP-02M | Minor | Yes | Cross-Chain Signature Replay Attack Susceptibility |
FPT-01M | Major | No | Potentially Invalid Implementation |
GOV-01M | Medium | Yes | Improper Governor Renouncation |
GOV-02M | Minor | Yes | Incorrect Event Emitted |
GOV-03M | Minor | Yes | Potentially Restrictive Functionality |
GAA-01M | Informational | Yes | Improper Percentage Documented |
GUA-01M | Medium | Yes | Improper Guardian Renouncation |
GUA-02M | Minor | Yes | Incorrect Event Emitted |
GUA-03M | Minor | Yes | Potentially Restrictive Functionality |
OTM-01M | Major | Yes | Improper Integration w/ Uniswap V2 |
OTM-02M | Medium | Yes | Improper Evaluation of Token Balance |
OTM-03M | Medium | Yes | Ungraceful Mint Handling |
OTM-04M | Minor | Yes | Potential of Repeat Invocation |
OWN-01M | Medium | Yes | Improper Ownership Renouncation |
OWN-02M | Minor | Yes | Incorrect Events Emitted |
OWN-03M | Minor | Yes | Potentially Restrictive Functionality |
SDR-01M | Medium | Yes | Improper Accumulation of Rewards |
SDR-02M | Medium | No | Ungraceful Handling of High Adjustment Rates |
SDR-03M | Minor | Yes | Inexistent Validation of Entry Validity |
SDR-04M | Minor | Yes | Inexistent Validation of Reward Rate |
SBC-01M | Major | Yes | Inexistent Validation of Pair Tokens |
SBC-02M | Minor | Yes | Incorrect Usage of SafeMath Library |
TRE-01M | Major | Yes | Insecure Management of Reserve & Liquidity Tokens |
TRE-02M | Major | Yes | Weak Debt Position Validation |
TRE-03M | Medium | No | Improperly Valid Case |
TRE-04M | Medium | Yes | Inexistent Validation of Token Status |
TRE-05M | Minor | No | Potentially Unsafe Primitive Evaluation |
VOD-01M | Medium | No | Centralized Sensitive Functionality |
OHM-01M | Medium | Yes | Improper State Control of Migration |
OEC-01M | Medium | No | Potentially Incorrect Extrapolation of Rebase |