Normally, users should be able to deposit tokens to participate in a team, but each deposit should correctly update the user’s shares without creating inconsistencies.
The contract does not prevent multiple deposits to the same team, which can lead to duplicate entries, inconsistent accounting, or unintended inflation of user shares for a single team.// Root cause in the codebase with @> marks to highlight the relevant section
Likelihood:
Occurs whenever a user deposits multiple times to the same team, as there is no mechanism to prevent repeated deposits.
Occurs whenever the contract does not track per-deposit limits or update rules, allowing duplicate accumulation.
Impact:
Impact 1: Users may unintentionally inflate their share of the pool, which could affect payouts or create accounting inconsistencies.
Impact 2: Malicious actors could exploit repeated deposits to gain an unfair advantage over other participants.
The PoC shows that a user can deposit multiple times to the same team, inflating their shares and the team’s total. This can lead to unfair advantages and accounting inconsistencies in the vault.
Prevent users from depositing multiple times to the same team by checking userTeam[msg.sender] before accepting a deposit. This ensures accounting consistency and fair share allocation.
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.