Because FestivalPass NFT is also Ownable2Step and Ownable, any owner can call the public function renounceOwnership() and set the contract owner's address to address(0).
The function renounceOwnership() is inherited via OpenZeppelin::Ownable, it is true that it can only be executed by the owner at the moment, but if someone executes it, then it will render the BeatToken unavailable.
Likelihood:
Owner of the NFT decides to renounce of ownership due to disgrunted situation
Owner's private key is compromised and the attacker issues the renounce ownership public function
Impact:
The whole NFT festival becomes innoperable for all admin actions.
Just set at the beginning of setUp() add the line festivalPass.renounceOwnership(); just after the creation of the new FestivalPass contract
Override the function FestivalPass::renounceOwnership() so it will always fall back to the current owner.
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.