|
3 | 3 |
|
4 | 4 | ## **Table of Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_
|
5 | 5 |
|
| 6 | +- [**Table of Contents** _generated with DocToc_](#table-of-contents-generated-with-doctoc) |
6 | 7 | - [**SuperchainERC20 standard-only FMA (Failure Modes and Recovery Path Analysis)**](#superchainerc20-standard-only-fma-failure-modes-and-recovery-path-analysis)
|
7 | 8 | - [Introduction](#introduction)
|
8 | 9 | - [Audit Requirements](#audit-requirements)
|
9 | 10 | - [Security Considerations](#security-considerations)
|
10 | 11 | - [Failure Modes and Recovery Paths](#failure-modes-and-recovery-paths)
|
11 |
| - - [FM1: Unauthorized Access to `crosschainMint` & `crosschainBurn` Functions](#fm1-unauthorized-access-to-crosschainmint--crosschainburn-functions) |
12 |
| - - [FM2: Token Contract Missing in Destination Chain — Relay Fails Until Deployed (But Deployment Is Permissionless)](#fm2-token-contract-missing-in-destination-chain--relay-fails-until-deployed-but-deployment-is-permissionless) |
13 |
| - - [FM3: Token Contract Missing in Destination Chain — Relay Fails Until Deployed (But Deployment Is Permissioned)](#fm3-token-contract-missing-in-destination-chain--relay-fails-until-deployed-but-deployment-is-permissioned) |
14 |
| - - [FM4: Token Contract Missing in Destination Chain — Token Deployer Is Lost or Unable to Deploy to Expected Address](#fm4-token-contract-missing-in-destination-chain--token-deployer-is-lost-or-unable-to-deploy-to-expected-address) |
| 12 | + - [FM1: Unauthorized Access to `crosschainMint` \& `crosschainBurn` Functions](#fm1-unauthorized-access-to-crosschainmint--crosschainburn-functions) |
| 13 | + - [FM2: Token Contract Missing in Destination Chain: Relay Fails Until Deployed (But Deployment Is Permissioned)](#fm2-token-contract-missing-in-destination-chain-relay-fails-until-deployed-but-deployment-is-permissioned) |
| 14 | + - [FM3: Token Contract Missing in Destination Chain: Relay Fails Until Deployed (But Deployment Is Permissionless)](#fm3-token-contract-missing-in-destination-chain-relay-fails-until-deployed-but-deployment-is-permissionless) |
| 15 | + - [FM4: Token Contract Missing in Destination Chain: Token Deployer is Lost, or Unable to Deploy to Expected Address](#fm4-token-contract-missing-in-destination-chain-token-deployer-is-lost-or-unable-to-deploy-to-expected-address) |
15 | 16 | - [FM5: Compromised Deployment Method](#fm5-compromised-deployment-method)
|
16 | 17 | - [Action Items](#action-items)
|
17 | 18 | - [Warning for Integrators](#warning-for-integrators)
|
@@ -62,10 +63,8 @@ Similar to ERC20, SuperchainERC20 implementations should be considered untrusted
|
62 | 63 | ### FM2: Token Contract Missing in Destination Chain: Relay Fails Until Deployed (But Deployment Is Permissioned)
|
63 | 64 |
|
64 | 65 | - **Description**: The token on the destination chain is not yet deployed, which prevents the cross-chain transfer from finalizing (`relayERC20` fails). However, the token's deployment is permissioned, meaning it is solely up to the deployer to make the token available on the destination chain
|
65 |
| -- **Risk Assessment**: High. |
66 |
| - - Potential impact: High. Users may lose access to their tokens temporarily or permanently. Two specific scenarios can arise: |
67 |
| - 1. Funds are stuck but can eventually be relayed if the deployment occurs before the message expiration window ends. |
68 |
| - 2. Funds are stuck and potentially lost if the deployment occurs after the message expiration time ends or never occurs. |
| 66 | +- **Risk Assessment**: Medium. |
| 67 | + - Potential impact: Medium. Users may lose access to their tokens temporarily, until the token is deployed. |
69 | 68 | - Likelihood: Medium. A deployer may choose not to deploy the token on all chains.
|
70 | 69 | - **Mitigation**: Trusted bridge frontends should prevent users from sending tokens to a chain where the token doesn’t exist. Double-check other trusted sources (such as Superchain Token List) for greater confidence.
|
71 | 70 | - **Detection**: Support tickets filed by users reporting the issue.
|
|
0 commit comments