In EscrowFactory.sol, there is no check that the creator of the escrow is not the arbiter as well. If a seller is misinformed or does not do proper due dilligence, then the buyer can manipulate the escrow service to his favour
In EscrowFactory.newEscrow(), the buyer is the one that deposits the downpayment and creates the escrow contract. He also input the seller address and the arbiter address.
Right now, there is no check that the arbiter cannot be the buyer. The buyer can input his own address as the arbiter and trick the seller into thinking that he got an impartial 3rd party to oversee the escrow.
If the buyer is also the arbiter, then he can use this as an advantage over the seller (by calling dispute after the job is completed and keeping his money)
Manual Review
Add a simple check in newEscrow()
to mitigate such issues, eg
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.