Existing depositors can re-deposit their funds into frozen strategies #322
Labels
bug
Something isn't working
downgraded by judge
Judge downgraded the risk level of this issue
duplicate-199
grade-a
Q-11
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
sponsor disputed
Sponsor cannot duplicate the issue, or otherwise disagrees this is an issue
Lines of code
https://github.com/code-423n4/2023-04-eigenlayer/blob/main/src/contracts/core/StrategyManager.sol#L798
Vulnerability details
Impact
There are two ways to stop users from depositing into a strategy:
But, those only prevent new funds from being deposited. Existing shares can be redeposited into frozen strategies through the withdrawal system.
Proof of Concept
When withdrawing, you can specify whether you want to receive the underlying tokens or the strategy shares. If the withdrawer selects the strategy shares, the contract doesn't check whether deposits into the strategy are allowed or not.
While you're not able to deposit new funds, you can create a sort of secondary market for existing shares of the given strategy:
Tools Used
none
Recommended Mitigation Steps
If a strategy is removed from the whitelist or deposits are fully paused,
_completeQueuedWithdrawal()
should always withdraw the underlying tokens from the strategy.Assessed type
Invalid Validation
The text was updated successfully, but these errors were encountered: