Skip to content

Conversation

@hieronymus777
Copy link

While the current implementation of the smart contract wallet is internally consistent with respect to owner indices, an external change to the storage slots at an address can make it so hidden owners can be added to the owner mapping.

In traditional scw's this is impossible, but in case of this contract being used as the implementation for a 7702-delegated eoa, it's possible in the following scenario:

  1. User delegates to a malicious entity that sets storage for a hidden owner (i.e. sets an owner at an index above the nextOwnerIndex - for example index 1234, where nextIndex is 1)
  2. User delegates back to an implementation of the base smart contract wallet
    Before change: The base smart contract wallet will treat an owner at index 1234 as valid even though nextIndex is 1 and this state should not be possible
    After change: The base smart contract wallet will treat an owner at index 1234 as invalid

@cb-heimdall
Copy link
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants