ERC20 transfer and transferFrom methods missing checks their return values.
The ERC20 standard does not mandate that transfer and transferFrom methods revert if they fail. Some implementations might return false instead of reverting. The provided smart contract does not verify the return values of these methods, assuming that they always succeed.
If a token transfer fails but doesn't revert (instead, it returns false), the subsequent logic of the contract will still execute, potentially leading to undesired outcomes.
Unchecked transfers could lead to scenarios where the contract believes it has more funds than it does or thinks it has paid out funds when it hasn't.
Manual review
Always check the return value of transfer and transferFrom methods. If they return false, the transaction should be reverted.
Example fix:
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.