40,000 USDC
View results
Submission Details
Severity: medium
Valid

Escrow.sol - certain token types can cause issues to transfer functionality

Summary

Certain types of tokens can break core logic.

Vulnerability Details

Any kind of weird tokens like FEE-ON-TRANSFER, rebasing and pausable tokens can cause breakage, logic flaws or off-chain misleading. Fee on transfer tokens can break the resolveDispute() function, since after a buyerAward is paid and the fee is transferred, the i_arbiterFee might become more than the token balance. This would force the arbiter to do more work and consensus for the dispute might not be reachable. A paused ERC20 can lock a dispute, thus locking the escrow. A rebasing token can confuse off-chain metrics.

Impact

Certain functions can be broken, or off-chain systems can receive wrong data.

Tools Used

Manual Review

Recommendations

Since currently, what kinds of tokens would be allowed is an unknown, I would suppose some kinds of tokens would not be vested, like pausable ones. If there's a case of an accepted FEE-ON-TRANSFER, there can be a check done for the before and after token balance and use it for comparison.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.