the contract can be reentered due to use of low level call.
The following functions transfer funds using the low level call; withdrawFunds(), claimAllRewards(), and claimSingleReward(). the issue here is that if the called address is a contract, it can callback into the contract to drain the contract funds. this is plausible before the state is being updated after the transfer of funds were made.
draining of funds from the protocl
Manual Review
Use reentrancy guard and update state changes before token transfer or use safeTransfer function from openzeppellin
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.