In the afterLiquidationExecution function, the critical state variable _gmxLock
is not properly reset, leading to permanent locking of core contract functionalities.
The _gmxLock
state remains true after processing results (after Handle Liquidation & Auto-Deleveraging (ADL) Order Results).
Attack Path:
Initiate Order Request
Set _gmxLock = true during order creation.
2.Execute Order Request
Process the requested order transaction.
3.Handle Liquidation & Auto-Deleveraging (ADL) Order Results
The _gmxLock state remains true after processing results (failure to reset).
Contract locking mechanism activates permanently, blocking all _gmxLock-dependent operations (critical functionalities disabled).
This results in the contract's normal functionality being locked, thereby preventing the execution of subsequent operations
Manual
refer to afterOrderExecution
function
set _gmxLock = false;
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.