Intended behavior is one team selection per user, with a single share snapshot.
joinEvent has no guard against repeated calls, so the same address is pushed into usersAddress multiple times and counted repeatedly by _getWinnerShares.
Likelihood:
During the pre-event window, any participant can spam joinEvent for mainly gas cost.
Wallets resubmitting the same txn after a pending timeout will also trigger duplicates.
Impact:
totalWinnerShares inflates, shrinking legitimate payouts; leftover funds become permanently stuck.
Attackers can grief the vault with thousands of entries from a 1-wei deposit.
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.