A logic issue was identified which would cause the Escrow system to be unusable. In the event that an Escrow was set up with 0 price and 0 arbiter fee (edge case), the constructor for Escrow would always revert due to the manner in which it checked the price and the fee before reverting.
There is no vulnerability to security directly, other than causing a denial of service state for the user attempting to set up this escrow. Although this usage may be an edge case, and potentially not a common occurence, denying a user from setting up an escrow with this information is a DoS against that user. This does not appear to impact anyone else.
Broken code:
Foundry Test:
Test result:
Causes a denial of service state by consistently reverting for the user attempting to use the Escrow in this instance.
VS Code
Foundry
Manually reading the code
It is recommended to change the impacted line to the following to only check if the fee is greater than the price, not also equal too:
Foundry test re-run (note, all previous tests also passed with this change):
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.