According to the protocol specification: "The account that deploys the MultiSigTimelock contract automatically receives both the OpenZeppelin DEFAULT_ADMIN_ROLE and the custom SIGNING_ROLE"
However, the constructor only grants SIGNING_ROLE to the deployer, not DEFAULT_ADMIN_ROLE. This means the AccessControl role management inherited from OpenZeppelin is completely non-functional.
Likelihood:
This is a deployment-time bug that affects every contract deployment
100% of deployments will have broken AccessControl
Impact:
The inherited AccessControl grantRole() and revokeRole() functions cannot be used by anyone
Protocol documentation claims DEFAULT_ADMIN_ROLE is granted but it's not
If the owner (Ownable) is compromised or lost, there's no backup admin mechanism through AccessControl
Inconsistency between documented behavior and actual implementation
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.
The contest is complete and the rewards are being distributed.