Omniscia Gravita Protocol Audit
Manual Review
Manual Review
A thorough line-by-line review was conducted on the codebase to identify potential malfunctions and vulnerabilities in Gravita Protocol's novel borrowing implementation.
As the project at hand implements a Liquity-based borrowing protocol backed by multiple collateral types, 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 several dynamic collateral-related vulnerabilities within the system which could have had severe ramifications to its overall operation.
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 the extent it need be.
A total of 77 findings were identified over the course of the manual review of which 17 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 |
---|---|---|---|
ACT-01M | ![]() | ![]() | Improper Reset Functionality |
ACT-02M | ![]() | ![]() | Improper Permission of Collateral Activation |
ACT-03M | ![]() | ![]() | Improper Capability of Gas Compensation Adjustment |
ERC-01M | ![]() | ![]() | Insecure EIP-2612 Implementation |
ERC-02M | ![]() | ![]() | Insecure Elliptic Curve Recovery Mechanism |
GSM-01M | ![]() | ![]() | Improper Application of Safe Arithmetics |
PFD-01M | ![]() | ![]() | Significant Centralization of Sensitive Functionality |
PFD-02M | ![]() | ![]() | Incorrect Error Handling |
PFD-03M | ![]() | ![]() | Inexistent Initialization of Price |
PFD-04M | ![]() | ![]() | Incorrect Lido Staked ETH Value Assumption |
PFD-05M | ![]() | ![]() | Incorrect Lido Staked ETH Price Usage |
SMH-01M | ![]() | ![]() | Improper Application of Safe Arithmetics |
STR-01M | ![]() | ![]() | Incorrect Decimal Assumption |
STR-02M | ![]() | ![]() | Insecure Conversion of Amount |
SVS-01M | ![]() | ![]() | Insecure Data List Size Enforcement |
SPL-01M | ![]() | ![]() | Inexistent Normalization of Asset |
TKC-01M | ![]() | ![]() | Inexistent Prevention of Duplicate Invocations |