C4 S-80 Multicall3 address as argument#69
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.