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.