Pot constructor allows reward mapping corruptioni_players using its own length, but never validates that i_rewards.length == i_players.length. If fewer rewards are provided than players, the last players silently receive a reward of 0. If more rewards are provided, the excess is ignored.Likelihood:
The createContest function in ContestManager accepts both arrays from the caller with no validation, making it trivial to pass mismatched arrays
Any accidental or malicious mismatch between player and reward arrays will deploy a corrupted contract with no revert
Impact:
Players can be permanently locked out of their rewards with no way to recover them.
The contract deploys successfully with corrupted state and no revert occurs.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.