A centralized risk has been identified in the system's rewards distribution mechanism, where the owner can call the withdrawFunds function before users claim their rewards. This vulnerability could prevent users from claiming their entitled rewards if the owner withdraws the funds, which affect one of the main protocol functionality
The core issue lies in the design of the withdrawFunds function, which allows the contract owner to withdraw the contract's balance, including funds intended for user rewards, at any time. If users have pending claims and the owner calls the withdrawFunds function, the reward pool may be drained, leaving insufficient funds for users to claim their rewards.
PoC
users can't claim their rewards
Manual review
Some Ideas to mitigate the issue
Check that there is no pending rewards before withdrawing
Design a cut for the owner
Subtract pending rewards for the contract balance and withdraw the remaining
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.