Under normal behavior, the protocol must preserve a strict invariant between total shares, total assets, and individual user balances so that share pricing remains fair and deterministic across deposits and withdrawals.
The issue arises because partial withdrawals modify user balances without enforcing an immediate, atomic synchronization of global accounting variables. This allows the share price to be temporarily mispriced, enabling strategic users to mint excess shares through carefully ordered actions.
Likelihood:
Occurs during repeated partial withdrawals and deposits, which are standard interactions in DeFi position management.
Manifested whenever rounding and accounting updates are applied non-atomically across user and global state.
Impact:
Attacker systematically mints more shares than economically justified.
Honest participants are diluted, and value is transferred without triggering explicit failures or reverts.
Each partial withdrawal introduces a small accounting gap between user state and global totals. By immediately depositing into this mispriced state, the attacker captures excess shares. Repeating the cycle compounds the imbalance, resulting in a net profit extracted from the system.
Enforce atomic updates to global accounting (totalAssets, totalShares) before any user balance mutation.
Add invariant checks ensuring share price consistency after every state-changing operation.
Prevent deposits from executing unless global state reflects the most recent withdrawal effects.
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.
The contest is complete and the rewards are being distributed.