CertiK reviewed OpenSky (Opensky Finance) on 5 Sep 2022: 45 findings, 1 critical; 35 marked fixed, 2 acknowledged, 8 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 1 |
| High | 4 | 0 | 1 |
| Medium | 0 | 2 | 4 |
| Low | 4 | 0 | 29 |
In the contract `OpenSkyWETHGateway` the role `_owner` has authority over the functions shown in the diagram below.  In the contract `OpenSkySettings` the role `_owner` has authority over the functions shown in the diagram below.  In the contract `OpenSkyCollateralPriceOracle` the role `_owner` has authority over the functions shown in the diagram below.  In the contract `OpenSkyInterestRateStrategy` the role `_owner` has authority over the functions shown in the diagram below.  Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and change the borrow rates, manipulate the prices on the `OpenSkyCollateralPriceOracle` or change the addresses of the sensitive contracts on the `OpenSkySettings` contract.
The function `withdrawERC721ToDaoVault()` from contract `OpenSkyDaoLiquidator` transfers an NFT from the liquidator to the `daoVaultAddress` provided by the contract `OpenSkySettings`. Given that the destination address can be changed at any time on the `OpenSkySettings` contract, the function could allow sending the liquidation NFT to an arbitrary address.
In the contract `OpenSkyPriceAggregator` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and set a custom price aggregator. 
The function `withdrawERC721()` from the contract `OpenSkyDaoVault` allows any member of the Governance to withdraw any NFT to an arbitrary address. The function `withdrawERC20()` from contract `OpenSkyDaoVault` allows any address from Governance to withdraw any amount of tokens to an arbitrary address. The function `withdrawERC1155()` from contract `OpenSkyDaoVault` allows any address from Governance to withdraw any amount of any ERC1155 token to an arbitrary address. The function `withdrawETH()` from contract `OpenSkyDaoVault` allows any address from Governance to withdraw any amount of ETH to an arbitrary address.
`calculateIncome()` return value `moneyMarketDelta` is never used by the caller.
The linked parameters are used without proper validation. For the function `addToWhitelist()` from contract `OpenSkySettings`, there is no mechanism that prevents the parameters `name` and `symbol` from being an empty string. Also, no mechanism validates the parameters `minBorrowDuration` and `maxBorrowDuration`, this could lead to a scenario where the latter variable is lower than the former one.
The linked addresses are not checked before being used to make sure they are not the zero address.
The linked variables are not used in their scope.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (50)
1,044 projects reviewed · 1,393 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us