Some ERC20 tokens return false instead of reverting when transfer/transferFrom is called. This is not properly handled by the protocol and can lead to loss of funds.
In many areas of the protocol, ERC20's transfer/transferFrom is called but the return value is not checked. Since some tokens return false upon failed transfer instead of reverting, this means that the transfer may fail while the contract believes it was successful. This allows malicious users to steal funds from others.
In Lender, if the collateralToken for a loan is vulnerable to silent failures, a borrower may call borrow and the transfer of collateral from the borrower to the Lender may fail. In this case, the borrower will receive the loanToken without providing any collateral, stealing all funds from the lender at zero cost.
Manual review
Use OpenZeppelin's SafeERC20 library for token transfers.
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.