The RAACHousePriceOracle contract depends solely on a single Chainlink oracle for price updates via _processResponse(), with no additional validation. A compromised oracle could set arbitrary prices, severely impacting downstream contracts like LendingPool by manipulating collateral values. This high-impact, medium-likelihood vulnerability risks significant financial losses due to centralized trust.
The _processResponse() function decodes the oracle’s response and sets house prices without cross-checking. Example:
Malicious oracle sets house ID 1’s price to 1 wei (real value 1e24 wei, ~1M) in undercollateralized debt exposure due to the manipulated price.
The protocol could suffer massive losses (e.g., $1M per incident), a high-impact outcome due to inflated or deflated collateral values triggering undercollateralized loans or missed liquidations. The medium likelihood reflects the realistic risk of oracle compromise or error, threatening downstream financial stability.
Manual Code Review: To confirm lack of validation in _processResponse().
Implement multi-oracle consensus or on-chain validation:
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.