Normally, administrative functions such as setting the winner, finalizing deposits, or pausing the contract should be restricted to trusted addresses, typically the contract owner or a multisig.
The contract currently lacks strict access control on some administrative functions, allowing any user or attacker to call them, potentially taking control of critical operations.
Likelihood:
Occurs whenever a user or attacker calls functions that should be restricted, due to missing onlyOwner or access modifiers.
Occurs whenever the contract relies on administrative functions to maintain fair or secure operation, as anyone can override them.
Impact:
Impact 1: Attackers can arbitrarily set the winning team or pause/unpause the contract, compromising fairness and security.
Impact 2: Users’ funds and trust are at risk because critical operations can be hijacked by unauthorized parties.
The PoC shows that any user can call administrative functions like setWinner() or setPaused() because access control is missing. This allows unauthorized parties to hijack critical operations, compromise fairness, and put user funds at risk.
Restrict all administrative functions using an onlyOwner modifier or multisig control to ensure only trusted parties can execute critical operations.
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.