The ScoreBoard
contract allows the organizer (owner) to set the results for all 9 matches. This presents a vulnerability where the organizer can manipulate the results to ensure that their predictions are always correct, potentially claiming all the funds in the ThePredicter
contract.
By setting the results for all matches to a predetermined value and making predictions that match these results, the organizer can ensure they win all rewards.
POC
this ensures the results for all 9 matches are set to guarantee that the organizer wins and can claim all funds:
The ScoreBoard
contract is not properly validated and there are no checks to prevent manipulation, the owner can exploit it to claim all the rewards. This is especially concerning if the prize pool contains significant funds.
Manual review and foundry
Implement multi-signature approval for setting match results.
Emit events for result proposals and approvals.
Consider using decentralized oracles or third-party verifiers to validate match results.
Here's an updated implementation of the ScoreBoard
contract incorporating multi-signature approval for result setting
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.