Open c4-bot-2 opened 8 months ago
raymondfam marked the issue as sufficient quality report
raymondfam marked the issue as duplicate of #18
See #18.
raymondfam marked the issue as duplicate of #22
raymondfam marked the issue as duplicate of #181
3docSec marked the issue as satisfactory
3docSec marked the issue as not a duplicate
3docSec marked the issue as duplicate of #114
The issue raised in this report differs from the one in reports #114 and #88.
This report highlights that an owner is able to remove other owners (and themselves) via use of the EntryPoint contract on one chain.
The report makes no mention of following key parts of the issue:
removeOwnerAtIndex
.I believe this report is highlighting an intentional design choice of the protocol (that owners have 1/1 power to execute transactions, including the addition/removal of other owners).
Yes @McCoady you are right, this one should dupe #18 because it does not elaborate on the key aspects of #114 .
3docSec marked the issue as not a duplicate
3docSec marked the issue as duplicate of #18
3docSec changed the severity to QA (Quality Assurance)
3docSec marked the issue as grade-b
Lines of code
https://github.com/code-423n4/2024-03-coinbase/blob/e0573369b865d47fed778de00a7b6df65ab1744e/src/SmartWallet/CoinbaseSmartWallet.sol#L180-L187 https://github.com/code-423n4/2024-03-coinbase/blob/e0573369b865d47fed778de00a7b6df65ab1744e/src/SmartWallet/CoinbaseSmartWallet.sol#L252-L262 https://github.com/code-423n4/2024-03-coinbase/blob/main/src/SmartWallet/MultiOwnable.sol#L102-L110
Vulnerability details
Impact
The
removeOwnerAtIndex()
in MultiOwnable contract removes an owner from the givenindex
of theMUTLI_OWNABLE_STORAGE_LOCATION
storage slot in the Contract. This function has an access control in the modifieronlyOwner
to ensure that the caller is a registered owner or the contract itself.However, through the
executeWithoutChainIdValidation()
in CoinbaseSmartWallet contract, an owner can remove other owners from the contract.Proof of Concept
Tools Used
Manual review
Recommended Mitigation Steps
Add a require check to ensure the owner at the index is the signer of the signature.
Assessed type
Other