The EggHuntGame::searchForEgg function has no rate limiting or gas consumption controls, allowing malicious actors to execute DoS (Denial of Service) attacks that prevent other users from participating in the game.
The vulnerability exists in the searchForEgg function which can be called repeatedly without any restrictions:
An attacker can monopolize the game by:
Creating a contract that continuously calls searchForEgg with high gas prices
Front-running other users' transactions to ensure their transactions are processed first
Filling blocks with their transactions, making it difficult for others to participate
Attacker monitors the mempool for searchForEgg transactions
When a legitimate user submits a transaction, the attacker immediately submits multiple transactions with higher gas prices
The attacker's transactions are processed first, potentially finding eggs before the legitimate user
By repeating this process, the attacker can effectively prevent other users from successfully participating
Regular users are unable to participate in the game
The attacker can monopolize egg finding
The game becomes unfair and centralized
If eggs have economic value, this becomes a serious financial attack
Undermines the core purpose and fairness of the game
Could lead to abandonment of the game by legitimate players
Manual code review
Implement a per-address rate limiting mechanism:
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.