The FeeCollector contract's collectFee()
function allows any user to arbitrarily classify fees under any category, leading to incorrect fee distributions and potential manipulation of protocol metrics. This undermines the protocol's core financial accounting and distribution mechanisms.
According to the documentation, RAAC is designed to "bring real estate on-chain and deeply integrate it within on-chain finance rails for seamless accessibility, composability, stability and capital efficiency." The fee collection system is crucial for this stability, as it funds essential protocol operations through carefully balanced distribution ratios.
The current implementation violates this principle by allowing fees to be misclassified, directly impacting:
Protocol revenue reporting accuracy
Distribution ratios between veRACC holders, treasury, and repair fund
Financial metrics used for protocol governance decisions
The vulnerability exists in the FeeCollector's open fee classification system:
The only validation performed is feeType > 7
, allowing any user to classify fees under categories meant for specific protocol operations. This contradicts the protocol's documented fee types:
This vulnerability can be systematically exploited to:
Direct more funds to repair fund by classifying fees as insurance fees
Skew protocol metrics by inflating specific fee categories
Manipulate governance decisions based on fee type metrics
Manual Review
Implement proper access control for fee classification
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.