The claimAndSwap
function increases the actual total assets by swapping WETH
for ALETH
at a premium price, but the totalAssets
value used to calculate share prices is not updated and the profit lock
period doesn't begin until a manual report
is called. This delay creates a misalignment between the actual and reported share prices for a certain time, enabling two primary exploits:
Unfair Withdrawals: Users withdrawing during this period receive fewer assets than they would based on the updated share price.
Whale Deposits for Profit Exploitation: A whale can deposit large amounts at the outdated share price during this period, effectively capturing most of the newly added profits after the profit lock period ends.
In the Youtube KickOff, the team confirmed that the WETH
converted in transmuter
will be further swapped back and re-deposited, this is where a part of the yield comes from.
When we look at the claimAndSwap
:
claimAndSwap
swaps WETH for ALETH and deposits the acquired ALETH back into the transmuter
.
However, this increase in actual assets is not reflected in S.totalAssets
, which is only updated in the report
function. Thus the S.totalAssets
is not updated in claimAndSwap
and the profit lock
is not started in time.
The S.totalAssets
value, which determines the share price, is updated in three cases:
• Deposits: Incremented by deposited assets.
• Withdrawals: Decremented by withdrawn assets.
• Reports: Reflects the total of unexchanged
, asset.balanceOf
, and underlyingBalance
.
Until report
is called, the increased assets from claimAndSwap
are unaccounted for, causing the share price to lag behind the actual vault value after the lock period
.
So, this leads to a situation that until the report
is called, the current price share is not updated and remains at a relatively low level compared to the future price when the profit is fully unlocked.
Users who withdraw or deposit before the report
will interact with the strategy
using the out-of-date price for quite some time.
Considering the following scenario:
• Whale Deposit Exploit:
The vault has 100 ALETH
and 100 shares
(1 ALETH/share).
After claimAndSwap
, the vault effectively has 120 ALETH
, but the share price remains at 1 ALETH/share
.
A whale deposits 200 ALETH
and receives 200 shares
based on the outdated price.
Once report
is called and profits unlock after some time, the total assets become 320 ALETH
, with 300 shares.
The whale captures 2/3
of the profit.\
• Unfair Withdrawals: Users withdrawing before report
is called interact with the vault using the outdated, lower share price even if his funds have been used to swap WETH
for more ALETH
, receiving less than their fair share.
This creates an unfair environment where:
• Early withdrawals result in losses for users.
• Whales can exploit the misalignment to capture disproportionate profits.
Manual
Update totalAssets
immediately in claimAndSwap
to reflect the actual vault value and automatically perform the profit lock.
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.