The design allows for escrow contracts to be deployed with 0 address as the arbiter and hence doesn't perform 0 address validation for the arbiter. For buyers who unintentionally provides 0 address as the arbiter this is a huge risk.
0 address is a valid arbiter value as of the current design and hence the input arbiter value should not be sanitized for 0 address.
https://github.com/Cyfrin/2023-07-escrow/blob/65a60eb0773803fa0be4ba72defaec7d8567bccc/src/Escrow.sol#L103
For buyers who unintentionally provides 0 address as the arbiter value their funds are now locked. The only option the buyer has is now to either let the funds be locked in the contract or pass it to the seller even in the case the seller doesn't provide a worthy service.
Manual Review
Disallow 0 address for arbiter as such an escrow contract doesn't provide any value to the buyer.
Create a separate state and function intended for the buyers to verify the details before locking in the funds and enabling the escrow contract.
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.