The _refundETH function might fail if we end up using more than 2300 gas, we also do not check if the balance of the user is non zero.
When we use the transfer method to send ether the transaction fails and reverts if it needs to use more than 2300 gas. This would mean if the destination is another contract and their fallback of recive methods have complex logic we might not be able to refund our ethers from the contract.
We can't refund ethers if transfer calls fails with unsufficent gas.
Manual review
Change the transfer with call that forward all available gas and handle the success/failure explicitly
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.