The MultiSigTimelock contract is designed such that three confirmations are required to execute a transaction, as defined by REQUIRED_CONFIRMATIONS = 3 [line 90]. When a signer confirms a transaction, the confirmation count is incremented in _confirmTransaction [line 341]. Critically, the execution logic in _executeTransaction [line 355] relies solely on this counter to meet the quorum: "if (txn.confirmations < REQUIRED_CONFIRMATIONS) { ... }" The identity of who provided the confirmation is checked against s_signatures to prevent double-signing, but is not re-validated against the current list of active signers.
If a signer (Signer A) confirms a malicious transaction and the Owner subsequently revokes Signer A's SIGNING_ROLE via revokeSigningRole, Signer A's confirmation remains counted toward the quorum. Because Signer A is no longer a signer, they cannot call revokeConfirmation, locking in their malicious approval. This flaw effectively reduces the required number of trusted, active signers needed to execute the transaction, weakening the multisig security. If the quorum is 3, and a revoked signer provided 1 confirmation, only 2 remaining signers are required for execution, despite the Owner having taken administrative action to isolate the compromised party.
Likelihood: Medium
While this requires a specific sequence of events (Revocation after Confirmation), handling compromised signers is a core function of the contract, and failing to handle their pending actions correctly is a significant oversight.
Impact: High
Quorum Bypass: A transaction can be executed with fewer than the required number of currently trusted signatures. For example, if 3 signatures are required, a transaction could potentially be executed with only 2 trusted signatures plus 1 "stale" signature from a revoked (and potentially malicious) account.
Irrevocable Malicious Votes: Once a compromised key signs a malicious transaction, that "vote" is permanently locked in. Even if the admin reacts immediately to revoke the compromised key, the attacker's contribution to the quorum persists, making it easier for them to execute the attack if they can compromise fewer remaining signers (or if remaining signers are functionally honest but confirm based on trust).
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.