Closed code423n4 closed 1 year ago
As per the NATSPEC of the contract;
@notice Action contract for updating security council members. Used by the security council management system.
Expected to be delegate called into by an Upgrade Executor
Invalid assumption as there is no member state at the contract.
0xSorryNotSorry marked the issue as low quality report
0xean marked the issue as unsatisfactory: Invalid
Lines of code
https://github.com/ArbitrumFoundation/governance/blob/c18de53820c505fc459f766c1b224810eaeaabc5/src/security-council-mgmt/SecurityCouncilMemberSyncAction.sol#L32
Vulnerability details
Impact
Anyone can update members of security council multisig
Proof of Concept
SecurityCouncilMemberSyncAction
contract has aperform
function which is used to update members of security council multisig.Link to Code
Here, the list of updated members:
_updatedMembers
is provided by anyone who calls it._nonce
is also controlled by the caller.So anyone can:
perform
with list of their controlled addresses for_updatedMembers
._nonce
condition, they need to pass any value greater than currentupdateNonce
value._updatedMembers
addresses will become members of security council multisig while previous members will be removed.Tools Used
VS Code
Recommended Mitigation Steps
Have an Access control for the
perform
function.Assessed type
Access Control