The owner can revoke their own signing role via MultiSigTimelock::revokeSigningRole. While this doesn't remove ownership, it prevents them from confirming/revoking transactions or executing proposals.
Though it is possible to regain signing role via MultiSigTimelock::grantSigningRole, as only the owner can do this and if the owner loses access to their key, they cannot recover signing capabilities.
Likelihood:
Low. While ownership remains, the owner loses signing capabilities. If this happens accidentally, they cannot participate in the multi-sig process without granting themselves the role again (which they can do as owner). That's why the likelyhood is low.
Impact:
High. With ownership gone to a malicious user, the owner loses complete control over the wallet.
Owner grants signing roles to multiple signers.
Owner proposes a transaction.
Owner revokes their own signing role.
Owner can no longer confirm or execute the proposed transaction.
Can only regain signing role by calling grantSigningRole on themselves. If the owner's key is lost, they cannot recover signing capabilities.
Paste the following test case into test/MultiSigTimelock.t.sol to reproduce:
Add explicit check to prevent owner from revoking their own signing role from MultiSigTimelock::revokeSigningRole
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.