Normal Behavior:
Festival passes are intended to be distributed among many users, ensuring fair access and participation. Typically, NFT or ticketing systems enforce a per-address cap to prevent a single user or bot from buying up all available passes.
Issue:
The buyPass
function in FestivalPass
does not restrict how many passes of each type a single address can purchase. A single user can repeatedly call buyPass
and acquire the entire supply of a pass type, preventing others from participating. This centralizes ownership, undermines fairness, and can lead to negative user experiences or manipulation.
Likelihood:
This can occur if a user or bot scripts repeated purchases, especially at launch.
Impact:
A single user can monopolize the supply, excluding others and potentially reselling at a premium.
A user can call buyPass
in a loop or via a smart contract to purchase all available passes for a given type:
Add a per-address purchase cap for each pass type.
This can be implemented by tracking the number of passes each address has purchased and enforcing a maximum.
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.