In normal behavior, each pass type has a limited supply tracked by passSupply[passId]
. Once the supply reaches the maxSupply
, no more passes should be mintable.
However, the configurePass()
function resets passSupply[passId] = 0
, which erases the count of how many passes were already sold. This allows an attacker (or malicious organizer) to reset the counter and sell more passes than originally allowed, bypassing the cap logic.
Likelihood:
Occurs every time configurePass()
is called with passSupply[passId] = 0
Especially likely if festival organizer reconfigures pricing or supply mid-lifecycle
Impact:
Organizer can bypass original mint cap for VIP/Backstage passes
Scarcity assumptions are broken; users may overpay for "limited" passes
Could lead to financial damage or trust issues for users and partners
OR
This is not acceptable as high because any attack vectors related to organizer trying to milk ETH from participants is voided by the fact that the organizer is trusted.
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.