In 3 instances (GMXDeposit.sol (1), GMXProcessWithdraw.sol (2)) does not set an expiration deadline which could result in lose of funds when swapping tokens.
The deadline parameter in the ProcessWithdraw() & ProcessDepositFailureLiquidityWithdrawal() swap is set to block.timestamp. That means the function will accept a token swap at any block number (i.e., no expiration deadline).
As per the devs comments;
The reason deadline is set as block.timestamp is that the functions are triggered as a follow-up functions, likely by a callback or keeper, and not directly by a user and that if the current transaction (the follow-up function) is processed after a specific deadline, it could result in a situation where the vault becomes "stuck" which is reasonable however without an expiration deadline :
A malicious miner can hold the transaction for malicious reasons putting the funds at risk.
Depositor losing on opportunities to withdraw at a profitable time.
More info: https://x.com/bytes032/status/1661344118704881668?s=46&t=ahuBu4vx0GHQr2UGnKTzKA
Manual
The proper and reasonable approach to this is to set the deadline as the function parameter with a proper timestamp.
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.