The depositRAACFromPool() contains a strict balance check that can be griefed by an attacker sending tiny amounts of RAAC tokens to the contract, causing deposits to permanently revert.
Attack Scenario:
Attacker sends 1 wei of RAAC to StabilityPool
LiquidityPool attempts normal deposit of 1000 RAAC
Pre-balance = X, Expected post-balance = X + 1000
Actual post-balance = X + 1000 + 1 (attacker's 1 wei)
Check fails → Deposit reverts permanently
The depositRAACFromPool will always revert thereby making the function unusable and leads to waste of gas
Manual Review
Consider a fix other than using a strict check
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.