The contract owner can arbitrarily change the organizer address at any time using the setOrganizer function. The new organizer immediately gains full control over all organizer-only functions, including configuring passes and increasing supply caps. This enables a malicious owner or compromised owner key to transfer organizer privileges to an attacker, who can then over-mint passes and break all supply guarantees.
Likelihood:
The owner can change the organizer at any time, for any reason, without delay or user notification.
This can occur if the owner is malicious, compromised, or pressured to rug-pull.
Impact:
The new organizer can immediately increase pass supply and sell unlimited passes, diluting all existing holders.
All trust in the pass system and project is lost, leading to financial and reputational damage.
If the owner changes the organizer to a malicious address, the new organizer can immediately call configurePass to increase the supply of any pass and sell unlimited passes. This breaks all supply guarantees and enables rug-pull scenarios.
To prevent organizer hijacking, make the organizer immutable after deployment by setting it only in the constructor and removing the setOrganizer function entirely. This ensures the organizer cannot be changed after deployment, eliminating the risk of privilege escalation or rug-pull via organizer replacement.
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.