The current implementation of _depositIntoEscrow
and _withdrawFromEscrow
assumes individual transfers of ERC1155 tokens. However, the ERC1155 standard also allows for batch transfers. If an attacker transfers tokens in a batch, this could lead to unexpected behavior or security issues.
Mitigation: Consider implementing batch handling functions or explicitly reject batch transfers within these functions to ensure that the logic only processes single-token transfers.
```compatibilities: Blockchains: - Ethereum/Starknet Tokens: - [ERC721](www.tokenstandard.com) ``` ``` function depositTokens( uint256 salt, address collectionL1, snaddress ownerL2, uint256[] calldata ids, bool useAutoBurn ) external payable { if (!Cairo.isFelt252(snaddress.unwrap(ownerL2))) { revert CairoWrapError(); } if (!_enabled) { revert BridgeNotEnabledError(); } CollectionType ctype = TokenUtil.detectInterface(collectionL1); if (ctype == CollectionType.ERC1155) { @> revert NotSupportedYetError(); } … } ```
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.