The Bridge contract in the Ark Lane protocol contains a critical security inconsistency in its cancelRequest function. While other functions in the contract, such as depositTokens, check if the bridge is enabled before executing, the cancelRequest function does not perform this check.
This inconsistency creates a potential security loophole where users can bypass the intended security measures by using the cancelRequest function even when the bridge is disabled.
The absence of the isEnabled check in the cancelRequest function could lead to:
Unauthorized token transfers when the bridge is intentionally disabled due to security concerns. This is particularly critical for the Ark Lane protocol, as it deals with cross-chain NFT transfers between Ethereum L1 and Starknet L2.
Use the following testcase to reproduce the behavior where we have disabled the bridge but still able to transfer NFT.
Technically, if you cancel a message, the token is not really bridged. If you can withdraw, it means that the token has already been bridged. Those two funtions do not have to be disable when the bridge is. Moreover nothing should prevent users to get back their NFT.
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.