Status Close
is not a final, one way action, even though it should be according to the specification. This enables a reopening of the vault even though it has been closed or a temporary DOS of withdrawals due to a keeper setting the state to Pause
The function GMXEmergency#emergencyPause
can be called regardless of the state that the contract is in:
So even though it is stated in the docs that emergencyClose
is a one-way irreversible action
and meant to close [the] vault for good
(Link). The status could be set to Paused
and then Open
again through the pause-resume flow (emergencyPause
-> emergencyResume
-> processEmergencyResume
).
A vault can be reopened even though it should not be able to. Due to the repayment of borrowed funds after closing, this would remove all leverage from the vault. Additionally, a malicious keeper could cause a temporary DOS by setting the state to Pause
, as emergencyWithdrawals
can only happen when closed.
Manual Review
Dont allow emergencyPause
to be called for any state
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.