There was an issue related to Auto Withdrawals from L1 reported by Cairo_Security_Clan
, and the team chose to remove this feature from the L1 side when withdrawing.
The problem is that this value is still taken as a parameter from the user in L2 Bridge when depositing Tokens. And no check guarantees that the value will be false
, it is left to the user to set it.
So people Bridging From L2 still think that auto withdrawal is supported. But it is actually not. which will end up Locking for their NFT in the L2 Bridge and the inability to withdraw them from L1 as calling L1Bridge::withdrawTokens()
will always revert.
UserA Wanted to Bridge one NFT from L2 to L1.
UserA thinks use_withdraw_auto
is allowed as it is to him to either set or not set it.
UserA called L2Bridge::deposit_tokens()
by setting use_withdraw_auto
to true.
UserA Waited till Starknet
verified the tx and put his message as an approved L2toL1
message.
UserA tried to withdraw his NFTs on L1 by calling L1Bridge::withdrawTokens()
.
Transactions get reverted whenever he tries to withdraw his token on L1.
Permanent Lock of NFTs on L2 Bridge Side and the inability to withdraw them from L1 side.
Manual Review
Ensure that use_withdraw_auto
is set to false when withdrawing from L2 side.
Impact: High, token will be stuck in L2 bridge. Likelyhood: Very low, option is available in L2 but has been disabled since March on L1, would be almost a user error.
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.