onlyOwner modifier in MultiSigTimeLock::proposeTransaction() disallows signers to propose transactionsNormal behavior - Signers which are granted the role SIGNING_ROLE must be able to propose transactions , it is also stated in the docs -> "Propose new transactions (permission is tied to the role, so any signer can propose)"
Issue - Transaction proposal restricted to Owner only. The proposeTransaction function is restricted to the contract owner, preventing signers from initiating transactions. As a result, even though multiple signers exist to confirm and execute transactions, only the owner is able to create proposals.
This design significantly limits the effectiveness of the multisignature mechanism and introduces a centralization point where the owner becomes a mandatory intermediary for all transaction initiation.
Likelihood:
Likelihood - High: This behavior occurs as part of the contract’s normal execution flow. Any attempt to propose a transaction from an address holding the SIGNING_ROLE is going to revert.
Impact:
Impact - High. Signers are expected to be able to propose transactions. However, due to the current access control limitation, only the owner is permitted to initiate proposals. This prevents authorized signers from performing a core function of the system, effectively centralizing control and disrupting the intended multisignature mechanism
Owner grants signing role to an address
The signer which was granted permission should now be able to propose a transaction
The signers uses MultiSigTimeLock.sol::proposeTransaction() but it is going to revert.
Do not use onlyOwner but instead check for the role in the MultiSigTimeLock::proposeTransaction()
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.