The emergencyPause function can be executed in any state and change the state to Paused. which may cause the running state to not continue.
Take deposit for example, if a user is currently depositing and the current state is Deposit, the user has already paid for the asset but has not received the corresponding share. if the emergencyPause function is executed at this time and the state is changed to Paused, then the afterDepositExecution function is used to change the state to Paused. function, the processDeposit cannot continue and the user loses the funds.
Users may lose funds.
manual
I think a better approach would be to normally execute functions that can be executed in the callback even in Paused state, such as processDeposit. this would avoid user loss.
Or even if it is not modified, this risk should still be made clear to everyone.
Impact: High Likelihood: Low/Medium Deposit or withdraw that were in progress will be ignored and cause fund loss. Because emergencyPause is only callable by keepers, Medium is the proper severity.
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.