The revokeSigningRole function allows the owner to remove a signer's role and access, reducing the signer count while preventing the complete elimination of all signers by reverting if the count would drop to zero, ensuring the wallet remains operational with at least one signer.
However, the function only checks against dropping to one or fewer signers, allowing revocations that reduce the count to two, which is below the required three confirmations for execution, permanently preventing any transaction from reaching the quorum and thus bricking all future executions without a way to recover unless signers are re-added, but risking total lockup if not addressed promptly.
Likelihood:
During routine role management when the owner revokes a signer from a minimal quorum setup of three or four signers.
In response to a compromised signer where quick revocation occurs without considering the impact on remaining quorum.
Impact:
Permanent lockup of all funds in the wallet as no transactions can achieve the required three confirmations, turning the contract into a receive-only address with no outflow capability.
Loss of wallet usability for the team or organization, potentially requiring a new deployment and fund migration if possible, leading to operational disruptions and potential financial losses from inaccessible assets.
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.