The deposit() function mints deToken without ensuring sufficient crvUSD reserves, risking over-issuance if reserves are depleted. This medium-impact, medium-likelihood flaw could dilute deToken’s value, undermining pool stability and user trust.
The function calls deToken.mint() without a crvUSD balance check. Example:
Pool has 500 crvUSD; attacker deposits 1000 rToken (1000 crvUSD worth).
Mints 1000 deToken (1e18 rate, scalingFactor = 1e18).
Liquidations drain 500 crvUSD, leaving 500 deToken unbacked.
Attacker withdraws 500 rToken, diluting deToken value.
Unbacked deToken (e.g., 500 units) reduces pool credibility, a medium-impact issue. The medium likelihood arises from reserve depletion during liquidations, a plausible scenario that could erode economic stability.
Manual Code Review: To confirm oversight in deposit().
Add a crvUSD balance 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.