The checkUpkeep function in LiquidationKeeper contains a potential index manipulation vulnerability that could lead to account liquidation bypass or unauthorized liquidations.
In teh checkUpkeep function :
The vulnerability lies in:
No validation of performLowerBound against liquidatableAccountsIds.length
Potential integer overflow in performLowerBound + i
Possible array access manipulation through carefully crafted bounds
Bypass of liquidation queue order
Potential skip of accounts that should be liquidated
Manipulation of liquidation priority
Possible DOS attack by setting performLowerBound to a very large number
Manual code review
Slither
Mythril
Custom fuzzing tests
Add proper bounds validation and array access protection:
2/ Add additional safety checks:
3/ Implement a sequential processing mechanism:
Track the last processed index
Enforce sequential processing of accounts
Add mechanisms to handle priority liquidations
These changes will significantly improve the security and reliability of the liquidation process while preventing potential manipulation of the account processing order.
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.