ManagedLeveragedVault::executeWithdrawalEpoch() will never work because cd.prevICR is not set
Summary
ManagedLeveragedVault::executeWithdrawalEpoch() asserts the new ICR is close to the old one, but the latter is never set. Marking medium as the contract is upgradeable.
Vulnerability Detail
The last check in ManagedLeveragedVault::executeWithdrawalEpoch() is:
_checkInvariantICR(getCurrentDenICR(), cd.prevICR, Tolerance.BOTH);However, cd.prevICR is never set and it will always revert.
Impact
DoSed withdrawals
Code Snippet
Tool Used
Manual Review
Recommendation
Set the old ICR.