Lender might not recieve loan tokens but the lender contract will update the pool as if the loan tokens were transferred to the pool lender.
There are some tokens that do not revert on failed to transfer tokens instead return boolean false but in the contract we don't check the value of the boolean returned due to which The lender.sol contract might not have enough loan tokens and if the contract tries to send the loanTokens like in line 159 of lender.sol contract then it would proceed the function and update the pool with new poolBalance inspite of the fact the lender didn't receive the loanTokens and the lender would not be able to get those loantokens back. Also when the lender calls the removeFromPool function it will update the pool balance even if the transfer of loan tokens to the lender failed.
This can cause the lender to loose the loan tokens.
Manual review
Add a check for the returned value of the transfer call and only proceed if the returned value is boolean true.
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.