Omniscia Steer Protocol Audit
Core Implementation Security Audit
Audit Overview
We were tasked with performing an audit of the Steer Protocol codebase and in particular their core infrastructure including staking systems, governance mechanisms, Uniswap V3 integrating vault protocols, and more.
Over the course of the audit process, we identified several vulnerabilities including two major ones around access control and the way liquidity ranges are defined within the multi-position vault contract.
We advise the Steer Protocol team to closely evaluate all minor-and-above findings identified in the report and promptly remediate them as well as consider all optimizational exhibits identified in the report.
Post-Audit Conclusion
The Steer Protocol team iterated through all findings within the initial report and created an issue for each respective finding on their repository via our report portal.
After evaluating each issue of their repository, they provided us with a revised commit hash to validate all alleviations on.
We inspected all alleviations performed by Steer Protocol and identified that certain exhibits had not been adequately dealt with which we highlighted to them.
The Steer Protocol team re-evaluated those exhibits and produced a new commit hash were changes for all exhibits could be identified along with an extensive document that detailed the rationale behind each exhibit's action or inaction.
After consuming the outputs of the document as well as the delta between the last commit hash and the version we audited, we have identified that no exhibits remain unaddressed in the codebase.
Contracts Assessed
Files in Scope | Repository | Commit(s) |
---|---|---|
Beacon.sol (BNO) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
BeaconManager.sol (BMR) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
BundleRegistry.sol (BRY) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
BaseLiquidityManager.sol (BLM) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
DynamicJobs.sol (DJS) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
GasVault.sol (GVT) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
InterfaceManager.sol (IMR) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
InternalGovernance.sol (IGE) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
InternalGovernanceTimelock.sol (IGT) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
KeeperRegistry.sol (KRY) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
MultiPositionLiquidityManager.sol (MPL) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
Orchestrator.sol (ORO) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
SteerToken.sol (STN) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
StakingRewards.sol (SRS) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
SteerPeriphery.sol (SPY) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
SteerGovernance.sol (SGE) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
StrategyRegistry.sol (SRY) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
SteerGovernanceTimelock.sol (SGT) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
SinglePositionLiquidityManager.sol (SPL) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
TreasuryVester.sol (TVR) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
VaultRegistry.sol (VRY) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
WhitelistRegistry.sol (WRY) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
WhitelistedMultiLiquidityManager.sol (WML) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
WhitelistedSingleLiquidityManager.sol (WSL) | contracts | d6ae772075, 200f275c40, 0ed41ccc18, 878a807a67 |
Audit Synopsis
Severity | Identified | Alleviated | Partially Alleviated | Acknowledged |
---|---|---|---|---|
18 | 16 | 0 | 2 | |
35 | 32 | 0 | 3 | |
15 | 14 | 0 | 1 | |
12 | 12 | 0 | 0 | |
2 | 2 | 0 | 0 |
During the audit, we filtered and validated a total of 16 findings utilizing static analysis tools as well as identified a total of 66 findings during the manual review of the codebase. We strongly recommend that any minor severity or higher findings are dealt with promptly prior to the project's launch as they introduce potential misbehaviours of the system as well as exploits.
The list below covers each segment of the audit in depth and links to the respective chapter of the report: