The LendingPool
contract uses NFT prices for collateral valuation but fails to check if the price data is stale. This can lead to users borrowing more than they should by exploiting outdated NFT prices.
The contract’s getNFTPrice
function retrieves both the price and a timestamp from an external price oracle, but it only verifies that the price is nonzero. There is no validation of the age of the price data, allowing stale (or potentially manipulated) prices to be used for critical collateral calculations.
Over-Borrowing: Users might borrow excessive funds by relying on outdated NFT prices.
Under-collateralization: Loans may become under-collateralized if the NFT values used are not current.
Liquidation Risks: Incorrect collateral valuation could delay or improperly trigger liquidations, destabilizing the protocol.
Implement a Staleness Check: Modify the getNFTPrice
function to verify that the price data is recent
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.