Borrower NFTs value are checked by calling LendingPool::getNFTPrice
but the function does not check whether the price are stale or not because it does not check thelastUpdateTimestamp
. If the price is stale this can lead to unintended effect like liquidation or borrowing with lower actual collateral in real market value.
when calculating borrower collateral price, the function LendingPool::getNFTPrice
would be called and check the price of each tokenId provided, but this function does not check when the last time the oracle update the price.
even though the lastUpdateTimestamp value is received, but it does not used.
by not checking if the price is stale or not, this can lead to protocol making wrong assumption with the NFT prices.
contract does not know if the price stale, this can make borrower can have unintended liquidation because of wrong price used if collateral price now lower than what market reflect or borrower can borrow amount with inaccurate liqudation treshold to cover the new debt.
manual review
add function that get latest price and check when is the last time its updated, if its updated over certain time treshold then mark the price as stale and request the oracle to update it again
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.