The deposit owner cannot get a refund for the execution fee on withdrawals.
The _handleReturn function is the end of the withdrawal flow, this function calculates the collateral amount that should be sent to the treasury and the user and makes those transfers, then updates the totalShares and deletes the depositInfo mapping by calling the _burn function, after deleting the depositInfo mapping it will try to refund the executionFee to the deposit owner, but the if (depositInfo[depositId].executionFee > usedFee) would never be true because the depositInfo mapping has been reset to default values in the _burn function, so the call to the gmxProxy.refundExecutionFeefunction will never happen and the user will never receive the refund of this executionFee.
The deposit owner loses the execution fee refund.
Manual review
call the _burn function after the if (refundFee) has ended.
Likelihood: High, every time a user withdraw on 1x vault with paraswap Impact: Medium, fees never claimed to GMX and refund to the owner.
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.