The RAACNFT contract's minting mechanism have a price validation vulnerability. When the oracle returns a zero price, the contract's validation logic can be bypassed, allowing NFTs to be minted at incorrect prices. This creates a systemic risk to the protocol's economic model.
The vulnerability centers on the price validation sequence in the mint function: RAACNFT.sol#L33-L35
While there is a zero-price check, the contract lacks oracle price validation and sanity checks.
When an attacker observes the oracle returning a zero price for a tokenId
. They can call mint()
with a minimal amount. Despite the zero-price check, the transaction succeeds due to insufficient price validation, allowing NFT minting at an incorrect price point.
The issue lies in how the RAACNFT contract handles house price validations. Imagine a real estate agent selling houses without verifying the appraisal date, that's effectively what's happening here. When the oracle returns a price, the contract performs only basic validation, similar to accepting a house price without checking when it was last appraised.
Let's walk through how this plays out
An attacker monitors the oracle's price feeds, waiting for a moment when the tokenToHousePrice function returns zero for a valuable property. This is analogous to catching a glitch in a stock trading system where premium stocks briefly show as worthless. The attacker then calls the mint function with a minimal payment, exploiting the gap between the oracle update and price validation.
The contract's state transforms through three critical phases:
The oracle reports a zero price for a legitimate property
The basic zero-check passes due to insufficient validation
The NFT mints at an incorrect valuation, undermining the entire property pricing model
This vulnerability could destabilize the protocol's real estate tokenization mechanism. Rather than just "financial loss," we're looking at the potential for attackers to acquire tokenized property rights at severely discounted prices, directly impacting the protocol's ability to maintain accurate property valuations.
The system allows minting NFTs when the oracle returns 0 price, potentially enabling:
Free minting of NFTs
Bypass of proper price validation
Economic exploitation of the protocol
The mint function relies solely on the oracle price without additional validation safeguards or fallback mechanisms.The vulnerability centers on the price validation sequence in the mint function:
The solution requires implementing a price validation system that treats property valuations with the same rigor as traditional real estate transactions. Adding freshness checks, price bounds, and multiple oracle verifications, similar to how real estate transactions require recent appraisals from qualified sources.
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.