The contracts ProxyFactory.sol does not implement a 2-Step-Process for transferring ownership which can result in lose of ownership.
Ownership of the contract can easily be lost when making a mistake when transferring ownership. Since the privileged roles have critical function roles assigned to them. Assigning the ownership to a wrong user can be disastrous.
So Consider using the Ownable2Step contract from OZ (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable2Step.sol) instead. The way it works is there is a transferOwnership to transfer the ownership and acceptOwnership to accept the ownership.
##Impact
If ownership is lost, The onlyOwner functions like setContest, deployProxyAndDistributeByOwner and distributeByOwner will be inaccessible.
Manual Review
Implement 2-Step-Process for transferring ownership via Ownable2Step contract from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable2Step.sol)
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.