USDC token is implementing admin owned blocklist, which prevents users from sending/obtaining funds in this Token.
In case when SELLER or ARBITER does not know that they are not USDC blocklist, it can happen shortly before creating an Escrow. There is no check for this kind of blocklist in the escrow contract. The funds get stuck in Escrow.
I add here this vulnerability as USDC is a commonly used token, and also it was told that it will be used in Escrows.
Escrow does not check if the Seller or Arbiter occurs on this blocklist. It will prevent the Seller or Arbiter from obtaining the funds.
I created a Simple POC to imagine this situation, where I took some functionality from Escrow to test to have it in one place. The test below prevents confirmReceipt functionality as the seller is in blocklist.
Manual review.
Add check for blocklist if the Token which is used in Escrow is USDC in the constructor of Escrow.
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.