The return values of ERC20 operations like transfer
and transferFrom
functions is not checked.
There two ERC20 operations i.e transfer
and transferFrom
which are heavily used in the contract and these functions return a bool as output to determine these functions succeeded or not. But these return values are not checked in the contract.
For the scenarios like funds not approved, malicious token and transfer failed which usually throw false as return value for these ERC20 operations but the return values is not checked causing serious mismanagement and loss of funds.
Manual Analysis
Check the return values of these function and if they return false, revert the transaction with custom errors:
OR
Put these operations in a require block like in an example given below:
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.