The protocol lacks validation of oracle price staleness in critical functions where house prices are fetched. Specifically:
In RAACNFT::mint()
, tokenToHousePrice()
is called without checking the timestamp of the last price update
In LendingPool::getNFTPrice()
, while getLatestPrice()
returns a timestamp, it's not validated against any staleness threshold
This could allow operations to proceed with severely outdated price data, potentially leading to significant financial losses.
Stale prices can be exploited to:
Mint NFTs at outdated (potentially lower) prices
Take out loans with incorrect collateral valuations
Manipulate liquidation thresholds
In volatile market conditions, using stale prices could result in direct financial losses to users and the protocol.
Manual review
Add staleness checks when fetching oracle prices:
In RAACNFT::mint()
:
In LendingPool::getNFTPrice()
:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.