getNftPrice() in the Lending Pool retrieves the last updated price from the oracle. Although 0 USD is a legitimate price for real estate if its value plummets due to circumstances, the code still causes a revert in such cases.
This issue results in a Denial of Service (DoS) and causes NFTs to become stuck in the lending pool.
Let's consider the following scenario:
Alice tokenizes 10 real estate properties, all worth 3 million USD.
She deposits all of her NFTs into the lending pool.
Since she is well collateralized, Alice decides to borrow 100,000 USD.
The price of one of her properties drops to 0.
Alice is unable to withdraw her other NFTs, causing them to become stuck. She also cannot be liquidated.
This is ~2.9 million usd loss for Alice
Users will lose funds due to their NFTs becoming inaccessible.
Manual review
Treat 0 USD as a valid output.
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.