The contract sets ownership using:
This is unsafe, because msg.sender inside the constructor is simply the account or contract that deploys this contract, which in most real-world deployments is not the intended owner.
Likelihood:
Modern deployments frequently use factories, proxies, Gnosis Safe relayers, or Create2 scripts. In these setups, msg.sender is almost never the intended final owner. This makes incorrect ownership assignment highly likely during deployment.
Impact:
Using msg.sender inside the constructor to initialize ownership may assign the contract owner to an unintended address (factory contract, relayer, deployment script, or Create2 deployer).
This can result in permanent loss of ownership, inability to manage or upgrade the contract, or ownership being assigned to a third party that cannot execute admin actions.
In the worst case, this can lead to total loss of control and broken business logic.
None
Replace:
with:
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.