The contract uses timestamp-based randomness to determine slice amounts, which is predictable and can be manipulated by validators or sophisticated attackers. The randomness is generated using timestamp::now_microseconds() % 401 + 100
.
Likelihood:
Validators can manipulate transaction timing to influence randomness outcomes
Attackers can predict slice amounts by observing timestamp patterns
MEV (Maximum Extractable Value) opportunities exist for sophisticated actors
Impact:
Unfair distribution of rewards favoring certain participants
Loss of randomness guarantees breaks the intended game mechanics
Potential for systematic exploitation reducing available funds
The `get_random_slice` function should only be called by the owner via the `register_pizza_lover` function. Also, the `owner` is trusted and will not choose a specific time for a new user to register. Therefore, I disagree with the claim of most reports in this group that an attacker can manipulate the random number of pizza slices. But I agree with the root cause of the reports in this group, that the random distribution is not completely random.
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.