Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Valid

Insufficient Price Zero Handling - LendingPool.sol

Summary

getNFTPrice reverts on zero prices but ignores staleness, allowing oracle attacks.

Vulnerability Details

priceOracle.getLatestPrice may return price = 0, which is treated as invalid, but no check exists for stale prices. An attacker could set price = 0 to block NFT operations.

Impact

NFT-related functions (deposit, borrow, repay) are disabled, causing a denial-of-service.

Tools Used

  • Manual Code Audit: Review getNFTPrice for comprehensive validation.

Recommendations

Allow zero prices but validate staleness.

function getNFTPrice(uint256 tokenId) public view returns (uint256) {
(uint256 price, uint256 lastUpdate) = priceOracle.getPrice(tokenId);
require(lastUpdate > block.timestamp - 1 hours, "Price too old");
return price;
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

LendingPool::getNFTPrice or getPrimeRate doesn't validate timestamp staleness despite claiming to, allowing users to exploit outdated collateral values during price drops

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

LendingPool::getNFTPrice or getPrimeRate doesn't validate timestamp staleness despite claiming to, allowing users to exploit outdated collateral values during price drops

Support

FAQs

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