NFTBridge
60,000 USDC
View results
Submission Details
Severity: medium
Valid

NFTs can be locked due to no cancellation mechanism on L2 bridge

Summary

NFTs could be locked forever in bridge if L1 owner doesn't support ERC721 Reciever

Vulnerability Details

NFTs brigded from L2 can be withdraw on L1 side using `withdrawTokens` function. But if req.owner which was set when initiating a L2 request doesn't support ERC721 Reciever, safeTransferFrom will revert. So the request can never be consumed and the tokens will be locked forever in the bridge contract.

On L1 bridge such cases can be handled by initiating message cancellation call. But as there is no such implementation on L2 side the NFTs will be locked forever

Impact

Users might loose NFTs when bridged from L2

Tools Used

Manual review

Recommendations

Add a cancellation implementation from L2 side which will be useful in emergency cases

Updates

Lead Judging Commences

n0kto Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

invalid-no-L2-cancel-mecanism-without-any-root-cause

Lack of feature is not a bug. Moreover that’s more something that the Starknet Core should implement since there is no way for Ark to have trusted data, preventing double spending. Finally, there is no real root cause in those reports, only suppositions that something bad can happen.

Appeal created

jokrsec Submitter
10 months ago
n0kto Lead Judge
9 months ago
n0kto Lead Judge 9 months ago
Submission Judgement Published
Validated
Assigned finding tags:

finding-withdraw-safeTransferFrom-to-no-onERC721Received-will-revert

Impact: High, NFT will be stuck in L2 bridge. Likelyhood: Very low, sending NFT to a contract not implementing that function would almost be a user error.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.