Multiple functions in Lender.sol do not check return value for transferFrom()
and transfer()
.
Function calls do not revert when returned value is false yet updates internal accounting. User can call borrow()
while having 0 collateralToken in their wallet. After borrower repays, collateralTokens is sent back.
Drain all collateral token from contract/Permanent loss of funds.
Foundry
Considered using SafeERC20 library from OpenZeppelin.
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/utils/SafeERC20.sol
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.