The owner can add and remove signers without requiring any multisig approval. This gives the owner complete control over who can approve transactions, allowing them to bypass the entire multisig security model by adding addresses they control.
In standard multisig implementations (like Gnosis Safe), adding or removing signers requires a multisig vote from existing signers. This contract instead gives the owner sole authority:
There is no documentation warning users that the owner has this level of control. Users depositing funds expect a standard multisig where signers are independent and changes require consensus.
Likelihood:
Owner can execute this at any time by controlling the signer set
No external conditions required
Impact:
Owner can set up "multisig" with only addresses they control
Owner can replace legitimate signers with sock puppets after users deposit funds
Complete bypass of multisig security - effectively becomes a single-signer wallet
100% fund loss possible
Users have false sense of security
Attack Scenarios:
Honeypot Setup: Owner deploys with 3 addresses they control, markets as "secure multisig", users deposit, owner drains
Rug Pull: Owner starts legitimate with real signers, gains trust, removes real signers and adds controlled addresses, steals funds
Hostile Takeover: Owner removes signers who disagree with malicious proposal, adds compliant sock puppets, forces transaction through
Run: forge test --mt test_OwnerCanBypassMultisigWithControlledSigners -vv
Require multisig consensus to add or remove signers, matching the standard multisig implementations:
Alternatively, clearly document in NatSpec that the owner has unilateral control over signers and users should verify signer independence before depositing funds.
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.