sherlock-audit / 2024-08-flayer-judging

0 stars 0 forks source link

Spare Infrared Gerbil - There is no way to replay failed messages in the `InfernalRiftAbove` and `InfernalRiftBelow` contract #753

Open sherlock-admin4 opened 4 days ago

sherlock-admin4 commented 4 days ago

Spare Infrared Gerbil

High

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.