During withdrawal on L2, the escrow is not updated to ContractAddressZeroable::zero()
.
During withdrawal on L2, it should update the escrow to ContractAddressZeroable::zero()
same as the approach done on L1:
https://github.com/Cyfrin/2024-07-ark-project/blob/main/apps/blockchain/ethereum/src/Bridge.sol#L201
https://github.com/Cyfrin/2024-07-ark-project/blob/main/apps/blockchain/ethereum/src/Escrow.sol#L86
But, on L2, this is missing. This leads to a situation that although the token is withdrawn on L2, the escrow
returns a non-zero address, incorrectly meaning that the NFT is still escrowed.
Wrong state value.
Missing updating a state variable.
Following line should be added:
Impact: Incorrect state without any other impact, which deserves a Low according to CodeHawks documentation.
Impact: Incorrect state without any other impact, which deserves a Low according to CodeHawks documentation.
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.