GMXVault
contract missing withdraw function to rescue stuck native tokens
In GMXVault
contract : almost all user-facing functions are payable (deposit and withdraw functions) in order to pay for the execution fees of the 3rd party (GMX exchange router keeper), and these functions doesn't implemnt a check on the sent msg.value
if it's greater than the deposit execution fee or withdrawal execution fee, which will lead to some native tokens being stuck in the vault instead of being refunded for the user.
Since the GMXVault
contract doesn't implement a withdrawal function for any residual native tokens; these native tokens will be stuck in the vault.
Manual Review.
Refund users the extra native tokens (msg.value
- dp.executionFee
) sent when calling GMX.deposit
& GMX.withdraw
functions.
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.