Omniscia KlimaDAO Audit
Manual Review
Manual Review
A thorough line-by-line review was conducted on the codebase to identify potential malfunctions and vulnerabilities in the bonding implementation of KlimaDAO.
As the project at hand implements a bonding system, 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 a markdown calculation vulnerability as well as potential token accounting errors within the system which could have had severe ramifications to its overall operation, however, they were conveyed ahead of time to the KlimaDAO 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 new bond evaluation calculations.
A total of 52 findings were identified over the course of the manual review of which 28 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 |
---|---|---|---|
CON-01M | Minor | No | Improper Re-Invocation Capability |
AKR-01M | Minor | Yes | Inexistent Validation of Truncation |
AKU-01M | Minor | Yes | Centralized Total Supply |
AEK-01M | Minor | Yes | Improper Wallet Deletion Path |
AEK-02M | Minor | Yes | Inexistent Validation of Data Validity |
EKL-01M | Minor | Yes | Improper Wallet Deletion Path |
KBC-01M | Major | No | Incorrect Markdown Calculation |
KBC-02M | Medium | No | Improper Token Assumption |
KBC-03M | Minor | No | Ambiguous Dual Token Support |
KCS-01M | Minor | No | Inexistent Validation of Duplicates |
KID-01M | Major | No | Improper Enumerability |
KID-02M | Medium | No | Improper ERC721 Mint Operations |
KLB-01M | Medium | No | Improper Consistency of Vesting Term |
KLB-02M | Medium | No | Ungraceful Handling of High Adjustment Rates |
KSD-01M | Medium | No | Improper Accumulation of Rewards |
KSD-02M | Medium | Yes | Improper Policy Renouncation |
KSD-03M | Medium | No | Ungraceful Handling of High Adjustment Rates |
KSD-04M | Minor | Yes | Inexistent Validation of Entry Validity |
KSD-05M | Minor | No | Inexistent Validation of Reward Rate |
KTN-01M | Medium | No | Cross-Chain Replay Attack |
KTN-02M | Medium | No | Insecure Elliptic Curve Recovery Mechanism |
KTN-03M | Medium | No | Overly Centralized Functionality |
KTY-01M | Major | No | Insecure Management of Reserve & Liquidity Tokens |
KTY-02M | Major | No | Weak Debt Position Validation |
KTY-03M | Medium | No | Improper Token Status Assumption |
KTY-04M | Minor | No | Potentially Unsafe Primitive Evaluation |
SHR-01M | Minor | Yes | Improper Validation of Execution |
KT2-01M | Medium | Yes | Improper Ownership Renouncation |