setWinner::BriVault is onlyOwner function, dishonest owner can set wrong country winner hence distroying the whole protocol.setWinner function is onlyOwner ,hence owner can set a wrong winner in order to gain incentive.
Likelihood: HIGH
It is highly possible that some dishonest admin can manipulate the result of the event.
Impact:
Loss of funds for users who have bet on the actual winner country .
All the users have joined the event and the event started.
owner has also joined the event .
Suppose there are 3 users for example with the countries they have bet on-> 1. owner(United States) 2. alice(Canada) 3. bob(Mexico).
All three have deposited 5e18 .
In actual, Canada won the event and the event is ended.
But the owner bet on United States ,so admin will call the function setWinner but with countryIndex as 0 .
The design of the contract makes it difficult to avoid the Centralization Issue.
Change the design of the contract and make it a Governance Protocol, where a set of event officials vote for the correct result .
If making a governance protocol, should set the quorum to 100%.
This is owner action and the owner is assumed to be trusted and to provide correct input arguments.
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.