The PerpetualVault does not validate GMX order success in callbacks, risking inconsistent state.
The contract’s afterOrderExecution function attempts to claim funding fees via an external call. If this external call fails (for instance, due to a revert in claimFundingFees), the catch block only emits an error event without taking corrective action. As a result, fees may remain unclaimed.
Unclaimed fees reduce vault profitability, unfairly impacting depositors.
Manual Review
Foundry
Implement a retry mechanism or queue failed claims for later processing.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.