Missing require(_organizer != address(0)) guard. The function is called once in the constructor and again on every organizer rotation — both are moments where a zero address can slip through.
setOrganizer() applies no zero-address validation:
If the owner calls setOrganizer(address(0)), the onlyOrganizer modifier requires msg.sender == address(0), which is impossible for any EOA or contract. The following functions become permanently inaccessible:
configurePass() — no pass can be priced or supply-capped
createPerformance() — no performances can be scheduled
createMemorabiliaCollection() — no memorabilia can be launched
The owner can call setOrganizer again to recover, but only if the owner key is still available — in a compromised or renounced ownership scenario, the protocol is permanently bricked.
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.