The Standard

The Standard
DeFiHardhat
20,000 USDC
View results
Submission Details
Severity: low
Invalid

Unsafe ERC20 transfers

Summary

The ERC20.transfer() and ERC20.transferFrom() functions return a boolean value indicating success. This parameter needs to be checked for success.

Some tokens do not revert if the transfer fails but return false instead.

Vulnerability Details

The unsafe ERC20 transfers are used in LiquidationPoolManager.sol, forwardRemainingRewards:

if (balance > 0) IERC20(_token.addr).transfer(protocol, balance);

and in LiquidationPool, in claimRewards:

IERC20(_token.addr).transfer(msg.sender, _rewardAmount);

Impact

This could lead to silent failure and wrongly updated internal balances. Potentially resulting in stuck user funds.

Tools Used

Manual review

Recommendations

Recommend using OpenZeppelin's SafeERC20 versions with the safeTransfer and safeTransferFrom functions that handle the return value check as well as non-standard-compliant tokens.

Updates

Lead Judging Commences

hrishibhat Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Known issue
Assigned finding tags:

unchecked-transfer

informational/invalid

Support

FAQs

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