A DoS attack can be triggered in the LiquidationPool contract. Malicious users can exploit the increasePosition function with low-value inputs, creating an overload of PendingStakes and disrupting other functionalities.
In order to perform the POC I updated the hardhat.config.js file in the following way:
I modified the 'allows users to claim their accrued rewards' test in liquidationPool.js to demonstrate the issue on runLiquidity function:
If the PendingStakes in LiquidationPool contract are too many to handle, the following external functions are blocked:
LiquidationPool - increasePosition, distributeFees, decreasePosition, distributeAssets
LiquidationPoolManage - distributeFees, runLiquidation
Manual Review & Hardhat
Limiting the pendingPositions array or/and make sure a user can have only one pending position per day.
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.