The address(0) check on the arbiter address should be moved into the constructor of the Escrow contract.
For the Escrow contract to have a chance at working as expected the arbiter address cannot be the 0 address. If it happens to get accidentally set to 0 on creation the only way for funds to be released is by the buyer calling confirmReceipt(). The contract performs this check but only in the initiateDispute() function. It should be moved into the constructor.
Funds will be stuck in the contract if the buyer never calls confirmReceipt().
Manual Review
Add an address zero check on the arbiter in the constructor.
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.