Not checking the return value of transfer and transferFrom methods executed on ERC20 tokens can disrupt the entire accounting of the system.
IERC20(tokenAddress).transfer() and IERC20(tokenAddress).transferFrom() are used throughout the contracts to move funds without checking for the return value. One example for each is shown below:
Some tokens can return false instead of reverting in case of a failed transfer.
The entire accounting will be invalid. Users can create pools, borrow and repay loans without actually holding and transferring the tokens.
Manual review
Checking the return value or use a standard implementation like Openzeppelin's SafeERC20.
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.