The claimAllRewards() function is subject to a re-entry attack because the state of the variable rewardsOwned is updated after an external call.
This function is vulnerable because an attacker can create a contract with a fallback function that calls claimAllReward(), thereby the balance funds will be cyclically drained into the attacker's contract.
Draining the contract balance.
Manual code review.
Follow the pattern Checks-Effects-Interactions, update the state of variables before external calls:
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.