sherlock-audit / 2024-08-flayer-judging

0 stars 0 forks source link

Blunt Daffodil Iguana - ERC1155 Amount Validation is Insufficient in `moongate` `InfernalRiftAbove` #764

Open sherlock-admin4 opened 4 days ago

sherlock-admin4 commented 4 days ago

Blunt Daffodil Iguana

Medium

ERC1155 Amount Validation is Insufficient in moongate InfernalRiftAbove

Summary

The crossTheThreshold1155 function currently only checks for zero amounts in ERC1155 token transfers, which can lead to an invalid amount being processed. There is no validation to ensure that the amount being transferred is within the user's balance or that it is a valid non-zero value. This lack of validation could result in failed transfers or undefined behavior when users attempt to cross tokens with amounts exceeding their available balance.

Vulnerability Detail

In the crossTheThreshold1155 function, the code checks whether the ERC1155 token amount is zero and reverts the transaction if true. However, there is no validation for cases where the user specifies an amount that exceeds their token balance. Without proper validation, users can attempt to transfer more tokens than they possess, which can lead to failures at the time of transfer and unexpected behavior. This opens the contract to a lack of control over token transfers and inadequate handling of erroneous input.

Impact

Failed Transactions: Users may attempt to transfer ERC1155 tokens with amounts exceeding their available balance, leading to failed transactions and a poor user experience. Potential Exploits: In edge cases where the ERC1155 token contract does not enforce balance checks correctly, an attacker could potentially exploit this to transfer invalid amounts of tokens. Undefined Behavior: Without proper validation, it becomes difficult to predict how the system will behave when invalid amounts are provided. This could cause issues in downstream processes such as bridging or token handling on Layer 2.

Code Snippet

https://github.com/sherlock-audit/2024-08-flayer/blob/main/moongate/src/InfernalRiftAbove.sol#L137C4-L194C6

Tool used

Manual Review

Recommendation

Balance Validation: Add a check to ensure that the amount specified for transfer does not exceed the user's available balance. Error Handling: Implement more robust error handling to catch potential issues with invalid amounts, including amounts that exceed the user's balance or are otherwise invalid within the context of the transfer. Log Events for Invalid Transfers: Consider emitting events that log attempts to make invalid transfers, providing insight into misuse or errors during token transfer.