20,000 USDC
View results
Submission Details
Severity: low

[L-2] Return values of `transfer()`/`transferFrom()` not checked

Summary

Not all IERC20 implementations revert() when there's a failure in transfer()/transferFrom(). The function signature has a boolean return value and they indicate errors that way instead. By not checking the return value, operations that should have marked as failed may potentially go through without actually making a payment

Vulnerability Details

Instances (5):

File: src/Lender.sol
​
323: IERC20(loan.loanToken).transferFrom(
​
329: IERC20(loan.collateralToken).transfer(
​
656: IERC20(loan.loanToken).transfer(feeReceiver, protocolInterest);
​
​
File: src/Staking.sol
​
39: TKN.transferFrom(msg.sender, address(this), _amount);
​
49: TKN.transfer(msg.sender, _amount);
​

Impact

Tools Used

Recommendations

Support

FAQs

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

Give us feedback!