The auction deadline comparison in the buyLoan and seizeLoan functions overlaps, allowing seizing loans while they can still be bought.
An auctioned loan can be bought as long as the auction deadline is not reached. The buyLoan function determines the auction end as loan.auctionStartTimestamp + loan.auctionLength in line 471. If the current block.timestamp is less than or equal to the auction end, the loan can be bought.
Conversely, the seizeLoan allows seizing the loan if the current block.timestamp is equal or greater than the auction end. This comparison overlaps with the buyLoan function and allows seizing loans while they can still be bought.
Loans can be seized while they can still be bought.
Manual Review
Consider using <= instead of <.
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.