Omniscia Maverick Protocol Audit
Manual Review
Manual Review
A thorough line-by-line review was conducted on the codebase to identify potential malfunctions and vulnerabilities in Maverick Protocol's rewarding infrastructure.
As the project at hand implements a voting-escrowed implementation and multiple staking & boosting systems, intricate care was put into ensuring that the flow of funds & assets 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 multiple significant vulnerabilities within the system which could have had moderate-to-severe ramifications to its overall operation; we urge the Maverick Protocol team to promptly evaluate and remediate any medium-and-above severity findings present in the audit report.
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 an exemplary extent, containing extensive in-line documentation as well as a comprehensive test suite to accompany the contracts and validate their behaviour.
A total of 41 findings were identified over the course of the manual review of which 12 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 |
---|---|---|---|
MVI-01M | ![]() | ![]() | Unhandled Revert Errors |
MVI-02M | ![]() | ![]() | Misnamed Validation Check |
MVI-03M | ![]() | ![]() | Improper Vote Budget Accounting |
MVI-04M | ![]() | ![]() | Insecure Rollover of Vote Budget |
MVR-01M | ![]() | ![]() | Inexistent Conformity to Checks-Effects-Interactions Pattern |
MVR-02M | ![]() | ![]() | Insecure Stake Extension Authorization |
MVW-01M | ![]() | ![]() | Inexistent Validation of Timepoint |
MVW-02M | ![]() | ![]() | Incorrect Extension of Existing Lockup |
MVS-01M | ![]() | ![]() | Potentially Insecure Voting Power & Sync Balances |
MVS-02M | ![]() | ![]() | Inexistent Permittance of Downward Synchronization |
VEW-01M | ![]() | ![]() | Inexistent Prevention of Approvals |
VEW-02M | ![]() | ![]() | Inexistent Validation of Multitude |