The protocol assumes that users will always specify the correct amount of gas when sending cross-chain tokens. However, there is nothing that enforces this, meaning tokens can be sent with insufficient gas. This can cause the transaction to fail outside of the function, and the current code has no implementation for storing failed transactions or retrying the token teleportation. This will block the communication channel between the two chains. As a result, users won't be able to mint tokens on the destination chain (e.g., Arbitrum), as the channel is blocked.
If any subsequent tokens are sent to the destination chain while the cross-chain communication is blocked, the nonces will become out of sync, permanently blocking the channel between the two chains.
We recommend enforcing a minGasLimitForChain
, which ensures that a minimum amount of gas is sent with each transaction. This will prevent insufficient gas issues and maintain the integrity of cross-chain communication.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.