The Pot constructor accepts address(0) in the players array without any validation. Rewards mapped to the zero address cannot be claimed because no externally owned account or contract controls that address. Those tokens are permanently locked in the Pot.
The constructor loop assigns rewards to whatever addresses are provided, including address(0):
When players[i] = address(0), the mapping sets playersToRewards[address(0)] = i_rewards[i]. Nobody can call claimCut() from the zero address, so those tokens are stuck. The fundContest() call transfers totalRewards tokens (which includes the zero-address allocation) into the Pot, but the zero-address portion can never be claimed.
This also interacts with the wrong-denominator bug (H-01): the zero-address entry counts toward i_players.length, inflating the denominator in the surplus calculation and further reducing what legitimate claimants receive.
Likelihood:
Requires the trusted admin to accidentally include address(0) in the players array. This is a configuration error, not an attacker-exploitable path. But common sources include uninitialized array elements in Solidity (which default to address(0)) or off-chain data errors.
Impact:
Tokens allocated to the zero address are permanently locked. The severity depends on the reward amount assigned to the invalid entry. Additionally, the zero-address entry inflates i_players.length, which reduces all claimants' surplus shares via H-01's wrong-denominator calculation.
The test creates a 3-player contest where one player is address(0) with a 500-token reward. The two legitimate players claim their rewards, but the 500 tokens assigned to address(0) remain permanently locked in the Pot.
Validate each player address in the constructor loop to reject zero addresses at deployment time rather than silently locking tokens.
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.