Closed code423n4 closed 1 year ago
If the both members are not found, the function reverts with the following;
revert NotAMember({member: _member});
Invalid assumption.
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/SecurityCouncilManager.sol#L183-L190
Vulnerability details
Impact
Incorrect information emitted as removed address. Remover would be thinking that they have successfully removed the harm causing cohort members, but still they are sitting inside the council. This is not good given the nature of the harmed action that council member can cause. Sitting in very short span time that can cause huge impact. hence timely removal of members are important.
Proof of Concept
when we look at the removeMember, it is called by the MEMBER_REMOVER_ROLE with any member address.
This function ensure that no zero address is passed.
when we look at the
_removeMemberFromCohortArray
, it travers the two set of arrays and look to removal.If both of the cohort array does not have the input member that want to be removed, no one will be removed and the council numbers remain same.
but the function
removeMember
emits that the member is removed.Tools Used
Recommended Mitigation Steps
Update the codes inside the function
_removeMemberFromCohortArray
If number of council members are same before and after removal, revert the function call.
Assessed type
Context