15,000 USDC
View results
Submission Details
Severity: medium
Valid

The expiration time of oracle prices for different collateral should not be consistent

Summary

The protocol hardcodes chainlink's price heartbeat to 3 hours. However, the update thresholds of different collateral in chainlink are different: for example, the heartbeat of ETH is 1 hour, but for BNB is 24 hours.
For ETH, the oracle may go offline, but the protocol do not know it until 3 hours later. Of course this is a lower risk, but for BNB that may lead to shutdown the protocol.
After 3 hours, if the BNB price remains stable and does not exceed the update threshold, but the protocol considers this data to be too old and does not allow the BNB price to be read.
Further the protocol does not isolate the collateral, a collateral price reading revert, the entire protocol can not be executed borrow, repay, liquidation, almost shutdown.

Vulnerability Details

The principle is very simple, no more details

Impact

For collateral whose heartbeat is 24 hours, the protocol is at risk of shutdown, and the odds are good. The protocol will not allow to execute operation until the price is updated 24 hours later. And the more such collateral is added, the more frequently the protocol shutdown.

Tools Used

Manual review

Recommendations

Perform different heartbeat judgments on different collateral

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.