This vulnerability arise on both ways L1 -> L2
and L2 -> L1
, but for simplicity this report will only be on the L1 -> L2
way.
The Ark Project bridge contains a critical vulnerability that can lead to users losing access to their bridged NFTs. This issue arises when the mapping between L1 (Ethereum) and L2 (Starknet) collections is changed after initial bridging operations have occurred.
Initially, when users bridge their NFTs, the system automatically creates a corresponding collection on L2. However, if the original collection owner later deploys their own official L2 collection and ask the ark project team to updates the bridge mapping, previously bridged NFTs become orphaned in the old L2 collection.
These orphaned NFTs can no longer be bridged back to L1 or transferred to the new official L2 collection. As a result, users are left with inaccessible and potentially worthless NFTs on L2, trapped in a collection that's no longer recognized by the bridge.
Users bridge NFTs from L1 to L2, triggering the deployment of an initial ERC721 contract on L2.
The L1 collection owner later deploys their own NFT collection on L2.
The Ark Project admin updates the L1-L2 mapping to point to the new L2 collection.
Users with NFTs in the original L2 collection lose the ability to bridge back to L1.
Initial bridging (simplified):
Remapping function (vulnerable):
Loss of Asset Access: Users cannot bridge their NFTs back to original L1 collection from the original L2 collection.
Asset Value Depreciation: Orphaned NFTs on L2 may lose value due to lack of bridging capability.
Ecosystem Fragmentation: Creates inconsistencies between L1 and L2 token ownership and metadata.
Implement a migration system for NFTs when L1-L2 mappings change:
Please, do not suppose impacts, think about the real impact of the bug and check the CodeHawks documentation to confirm: https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity A PoC always helps to understand the real impact possible.
Please, do not suppose impacts, think about the real impact of the bug and check the CodeHawks documentation to confirm: https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity A PoC always helps to understand the real impact possible.
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.