Description:
In _redeemWTokenPrivate
, wTokens are burned before withdrawing collateral from Aave. If the withdrawal fails (e.g., due to insufficient liquidity in Aave), users lose their wTokens without receiving the underlying collateral.
Root Cause:
Incorrect Order of Operations: The function burns wTokens (IWToken(_wToken).burn(...)
) before executing IAave.withdraw(...)
.
Failure Handling: If Aave’s withdraw
reverts (e.g., insufficient balance), the burned wTokens are permanently lost.
Impact:
Permanent Loss of User Funds: Users lose wTokens without retrieving collateral if the withdrawal fails (High Severity).
Violation of Atomicity: The operation is not atomic—partial execution leaves users with unrecoverable losses.
Recommendation:
Reverse the order: Withdraw collateral before burning wTokens:
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.