Based on the code of the EscrowFactory contract, it is indeed possible to create a new Escrow in the following way:
By passing only 1 token as the price.
Setting the arbiterFee to 0.
This is because in EscrowFactory:
There is no validation of the minimum price.
It only checks that arbiterFee < price.
Therefore, with a price of 1 and a fee of 0, the only condition is met.
This could allow creating "fake" Escrows that are very cheap, possibly with malicious incentives.
Some ways to mitigate this:
In EscrowFactory, require a minimum price (e.g., 1 ETH).
Require the fee to be a minimum percentage of the price (e.g., 10%).
Validate in Escrow that the price is greater than a minimum value.
Do not allow a fee of 0 for the arbiter in EscrowFactory.
POC (Proof of Concept):
This could allow creating "fake" Escrows that are very cheap, they can call it multiple times and spam.
manual review
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.