Closed code423n4 closed 1 year ago
Technically correct, since no funds are in risk, could be QA
0xSorryNotSorry marked the issue as low quality report
0xSorryNotSorry marked the issue as primary issue
0xean changed the severity to QA (Quality Assurance)
0xean marked the issue as grade-c
Lines of code
https://github.com/ArbitrumFoundation/governance/blob/c18de53820c505fc459f766c1b224810eaeaabc5/src/security-council-mgmt/SecurityCouncilManager.sol#L308-L321
Vulnerability details
Proof of Concept
The function isContract() is used in the protocol to check whether the address is a contract, and revert if the address is not a contract.
From Openzeppelin,
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/c12076fb7e3dfe48ef1d9c3bb2a58bdd3ffc0cee/contracts/utils/Address.sol#L18-L24
Impact
Contract address check can be bypassed.
Tools Used
Manual Review
Recommended Mitigation Steps
Note the security issues of isContract() and find another way to mitigate it.
Assessed type
Context