Lender.sol
contract uses transfer/transferFrom function without checking return values for main functions - addToPool
, removeFromPool
, borrow
, repay
, etc
Some ERC20 tokens don't throw but just return false when a transfer fails. As return value of transfer/transferFrom calls is not checked, this can be abused to trick the functions to change protocol state without actual tokens movement. A good example of such a token is ZRX: Etherscan code
Pool without providing token might be created. Users that would like to borrow from such pools might lost their collateral without getting any fund back
Observation
Use safeERC20 for ERC20 transfer calls
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.