The processDepositFailure() and processDepositFailureLiquidityWithdrawal() functions are meant to handle deposit failures and refund tokens. However, errors or exceptions occurring within these functions may prevent proper refunds from being issued.
If a deposit fails, these functions are relied upon to swap tokens and refund the user. But internal failures are not caught, so refunds would not be dispatched. This could leave funds inaccessible.
Reproduction:
Deposit fails, invoking a ProcessDepositFailure function
An error occurs within the function during swap calculations
Refund tokens are not transferred due to the uncaught error
Users may not receive owed refunds after deposit failures
Manual Review
Wrap critical refund sections in require statements to revert state on errors. This ensures users always receive owed tokens back even if a ProcessDepositFailure function fails internally.
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.