-
Notifications
You must be signed in to change notification settings - Fork 1
C4 S-80 Multicall3 address as argument #69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Alternative suggestion: We are already tightly coupled to the Sequence V3 ecosystem. Why not leverage the Guest for multicall handling? |
|
Adding it to the constructor is cleaner, but it does not change much about how the contract works, since we are going to deploy this with a CREATE2 factory and it will be the same in all chains anyway. I do agree that I am not sure why are we mix and matching stacks here, what is the logic behind not using the guest @shunkakinoki ? Using the Guest would make this a non-issue, a bit late to change it now And about the issue:
How is the attacker supposed to do this? This is probably a (badly) AI generated vulnerability, if we are going to assume attackers can deploy any contract to any address then we have bigger problems than this |
|
@Agusx1211 thank you for the above!
This was kind of vibes things (sorry) but if But.. definitely yes having as the same contracts w/ GuestModule would be nice |
|
There's a few changes we can make to the flow control if we want to leverage the seq wallets more. I suggest we pause going deep on those ideas for now.
|
|
Canonical Multicall3 deployment is blocked on a couple chains we support:
If we include this change we can use a different multicall3 address for these chains with known issues. Or we can use a consistent multicall address deployed via ERC-2470 instead of these presigned deployments that are prone to issues. |
|
I think we should re-deploy the multicall3 address using ERC-2470, that way we ensure we can deploy it everywhere that supports the main Sequence wallets |
|
Closing favour of #83 |
S-80 Multicall3 address mismatch on Sophon enables delegatecall hijack and complete wallet drain
https://code4rena.com/audits/2025-11-sequence-transaction-rails/submissions/S-80
Issue: Multicall3 is not available on all chains.
Analysis: As per the Multicall3 repo, Multicall3 can be deployed at
0xcA11bde05977b3631167028862bE2a173976CA11via a presigned transaction. Most chains have this deployed already, however new chains may not have it available. The pre-deploy may not be able to be processed on some chains (due to gas prices / limits etc). Some chains use a different address for their canonical MultiCall3 implementation.Fix: Adds Multicall3 as a parameter to support chains that do not have multicall3 deployed at the canonical address.
NOTE: I have also prepared 0xsequence/live-contracts#86 to deploy Multicall3 at the canonical address. Again, this pre-signed transaction may be blocked.