The contract lacks a function to withdraw ETH, only allowing the withdrawal of ERC20 tokens. This prevents the host from accessing ETH funds sent to the contract via the receive() function.
The contract has a withdraw() function to withdraw ERC20 tokens (WBTC, WETH, USDC) but does not have a corresponding function to withdraw ETH. The receive() function allows users to send ETH to the contract, but without a withdrawETH function, these funds are locked in the contract.
Locked ETH Funds: ETH sent to the contract via the receive() function cannot be retrieved by the host.
Manual Code Review
Implement a withdrawETH function, similar to withdraw(), that allows the host to withdraw the contract's ETH balance:
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.