The mint function in EggstravaganzaNFT contract does not do proper checks for rate limit which makes player mint excessive number of NFTs through multiple addresses and provide unfair advantage to the Game logic.
As we can see the below function mintEgg just checks for the authorized caller i.e. gameContract and does not have any rate limits for how many times in a session the particular function can be called which gives unfair advantage to the player while searching for egg.
As there are no further checks done in mintEgg function an attacker could call the searchforEgg function with multiple addresses and increase their chances of finding an egg which eventually triggers the mintEgg function to mint excessive number of eggs as there is no further checks done or any rate limit implemented to avoid this. Below is the test done to show how multiple addresses at a time are able to search for egg and mint them.
Manual testing
To prevent this we can implement Time-lock minting/Cooldown mechanism for each game session so that the players do not abuse the function with multiple addresses at a time and increase their chances of finding an egg giving unfair disadvantage to other players and disrupting the game logic.
Contract lacks any cooldown mechanism, search limits, or costs in the searchForEgg() function
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.