The matches mapping stores an unbounded array of addresses for each user's matches. Malicious actors can create multiple accounts and repeatedly match with a victim, causing their matches array to grow indefinitely. This makes the getMatches() function increasingly expensive to call and could eventually exceed the block gas limit, effectively DoS-ing the user's ability to retrieve their matches.
Impact:
Users with many matches will face increasing gas costs when calling getMatches(). In extreme cases, the function becomes unusable due to block gas limits. Malicious users can grief others by creating fake profiles and matching repeatedly, filling up their matches array.
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.