Normal Behavior:
The FestivalPass
contract uses an organizer
address for critical festival operations (e.g., configuring passes, creating performances, and managing memorabilia). The contract owner can assign a new organizer using setOrganizer
.
Issue:
If the organizer’s private key is lost or compromised, all organizer-only functions become permanently inaccessible or vulnerable to abuse. The only way to recover is for the contract owner to call setOrganizer
and assign a new organizer address. However, if the owner’s key is also lost or compromised, there is no recovery mechanism—organizer privileges are lost forever, and the contract becomes permanently locked for all organizer-only actions.
Likelihood:
Key loss or compromise is a common operational risk, especially if EOAs are used.
Impact:
If both the organizer and owner keys are lost, all organizer-only functionality is permanently disabled, bricking the contract for its intended use.
Organizer loses access to their private key.
No one can call organizer-only functions (e.g., configurePass
).
If the owner is also lost or compromised, no one can call setOrganizer
to recover.
The contract is permanently locked for all organizer operations.
Use a multi-signature wallet for both owner and organizer roles to reduce the risk of key loss.
Consider implementing a community-driven or time-locked recovery mechanism.
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.