contracts/PerpetualVault.sol
After every call to the GMX proxy to execute an operation on GMX sets up a lock on the Vault
contract which is only released during the execution of the callback when handing the response for GMX, this ensures that the keeper can only proceed with the next action only when the previous GMX operation has been executed and the vault contract is updated with the request response. However within the afterLiquidationExecution
function, (which is the callback function responsible for handling liquidation action on GMX), the lock is not released as expected, this causes the next keeper operation to always revert thereby obstructing the flow sequence
PerpetualVault.afterLiquidationExecution
Liquidation operations will always introduce a denial of service issue to the keeper causing important keeper actions to fail until the owner manually intervenes to reset the state of the vault.
Manual Review
Release the gmxlock by setting it to false after executing the afterLiquidationExecution
callback.
Likelihood: Medium, every liquidation. Impact: Medium, runNextAction and cancelFlow are not usable before a `withdraw` or a `run`
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.