The buyOrder function accepts ETH as payment for the ERC20s. It makes a few checks to ensure that the amount sent is enough to cover the cost and the fees. However, it never addresses that the amount sent could be more than needed. That would leave some additional ETH to sit in the contract. Unfortunately, this ETH can never be claimed as there is no logic in the contract to retrieve it.
ETH will be stuck in the contract forever
Manual review
Return the remaining ETH back to the buyer in the same function.
The extra eth sent by the user in the buy order will be locked in the contract forever
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.