The GmxProxy contract can receive WETH from GMX when ETH transfers fail during ADLs/liquidations, but lacks functionality to withdraw this WETH, potentially leading to permanently locked funds in the contract.
GMX's integration documentation explicitly states that when ETH transfers fail due to insufficient gas or other errors, the protocol will send WETH instead:
The GmxProxy contract currently handles ETH withdrawals:
If GMX's ETH transfer fails and falls back to WETH, these funds will be permanently locked in the GmxProxy contract
This impacts the protocol's ability to fully recover assets during liquidation/ADL events where ETH transfers fail
Manual review
GMX integration documentation analysis
Add WETH withdrawal functionality to the GmxProxy contract:
`TokenUtils.sol::sendNativeToken()` has no reason to fail since there is a `receive` function without any instruction in the GmxProxy. It’s the simpliest and cheapest transfer possible. Good finding, but there is no likelihood.
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.