A loan can be bought with mismatching loanToken
.
Currently there is no check if loanToken
of the buyer's pool are the same as the loan's loanToken
. This means someone can use a much cheaper token to buy a loan for a much more expensive token.
Example:
Alice creates a pool with a loanToken = WETH
.
Bob borrows 1 WETH from Alice's pool and receives his WETH
.
Alice decides to auction off Bob's loan and calls startAuction
.
Lizzy (malicious) creates her own pool with a loanToken = USDC
.
Since the protocols doesn't use an Oracle and the value of the actual token isn't taken into account when calling buyLoan
, Lizzy can buy Alice's loan for only 1 USDC, since only token amounts are taken into consideration.
Loss of funds for the original lender.
Manual review
Add a check in buyLoan
similiar to the one in giveLoan
.
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.