Normally, users should deposit a positive amount of tokens to participate in the tournament, and deposits should update team totals and user shares accordingly.
The contract currently allows deposits of zero tokens, which can create unnecessary entries in userShares or teamAssets and may cause edge-case issues in payout calculations.
Likelihood:
Occurs whenever a user calls deposit() with amount = 0, intentionally or by mistake.
Occurs whenever the contract does not validate positive deposit amounts.
Impact:
Impact 1: Zero-value deposits can create unnecessary bookkeeping entries, potentially confusing payout calculations.
Impact 2: May be exploited for trivial griefing or to interact unexpectedly with other contract logic expecting positive amounts.
Explanation:
The PoC shows that a user can deposit zero tokens, which updates internal mappings without transferring any tokens. This creates unnecessary entries and may cause unexpected behavior in payout calculations or other logic assuming positive deposits.
userShares and teamAssets, maintaining accurate accounting and preventing unnecessary entries that could interfere with payouts or other contract logic.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.