There is no way to replay failed messages in the InfernalRiftAbove and InfernalRiftBelow contract
Summary
In the InfernalRiftAbove and InfernalRiftBelow contracts, sent messages could fail for any reason, but there is no way to retry/retrieve failed messages leading to loss of funds.
Root Cause
users can send ERC721 and [ERC1155]() tokens cross chain between L1 and L2 using the InfernalRiftAbove and InfernalRiftBelow contracts. However, transactions can fail and there is no way to retrieve or retry them because the contracts do not expose functions for these purposes. Leading to funds getting stuck in the contracts.
Internal pre-conditions
Protocol does not make room for retrying or retrieving failed transactions
External pre-conditions
No response
Attack Path
No response
Impact
Possible loss of NFT for users who want to transfer asset between L1 and L2
PoC
No response
Mitigation
Implement functions to enable retrying failed messages.
Spare Infrared Gerbil
High
There is no way to replay failed messages in the
InfernalRiftAbove
andInfernalRiftBelow
contractSummary
In the
InfernalRiftAbove
andInfernalRiftBelow
contracts, sent messages could fail for any reason, but there is no way to retry/retrieve failed messages leading to loss of funds.Root Cause
users can send ERC721 and [ERC1155]() tokens cross chain between L1 and L2 using the
InfernalRiftAbove
andInfernalRiftBelow
contracts. However, transactions can fail and there is no way to retrieve or retry them because the contracts do not expose functions for these purposes. Leading to funds getting stuck in the contracts.Internal pre-conditions
Protocol does not make room for retrying or retrieving failed transactions
External pre-conditions
No response
Attack Path
No response
Impact
Possible loss of NFT for users who want to transfer asset between L1 and L2
PoC
No response
Mitigation
Implement functions to enable retrying failed messages.