wToken Transferability
The WToken
contract inherits standard ERC20 transfer functionality unless explicitly overridden. No code restricts transfers, so users can freely send wTokens to any address, including the AaveDIVAWrapper
contract.
Example Attack Flow:
Attacker transfers X
wTokens directly to the AaveDIVAWrapper
contract.
Victim calls removeLiquidity()
, triggering a balance check:
Protocol burns victim’s wTokens + X
and withdraws victim’s collateral + X
from Aave.
Attacker front-runs to steal the surplus X
collateral.
wToken Mint/Burn Control
While only the AaveDIVAWrapper
can mint/burn wTokens (owner-restricted), transfers between users are unrestricted by default (ERC20 standard). This allows attackers to manipulate the contract’s wToken balance via direct transfers.
wToken = Aave Collateral: Since 1 wToken always represents 1 underlying Aave collateral token (e.g., USDC), manipulating wToken balances directly impacts real assets. Attackers can "donate" wTokens to exploit the balance delta, converting fake wToken inflation into stolen collateral.
Internal Accounting
Track wToken inflows/outflows using internal state variables instead of balanceOf
. For example:
Restrict wToken Transfers
Modify the WToken
contract to disable arbitrary transfers, allowing only the AaveDIVAWrapper
to move tokens:
This restricts transfers to only mint/burn operations by the owner (wrapper contract), preventing external manipulation.
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.