A user calls claim_pizza_slice
to withdraw APT their assigned APT slice, provided the contract has sufficient balance. The function ensures that the user is registered, has not already claimed, and that the internal balance is enough. The issue is that when the pizza pool balance is low, multiple users racing to claim may cause a last-slice problem.
Validators on APTOS can influence which transations get executed first when balance is insufficient, enabled MEV. This allows validators to favor specific addresses or front-run claims.
Likelihood: Low
When the pizza pool balance approaches depletion, multiple claim transaction may compete. Validators can choose trannsaction inclusion and ordering within blocks.
Impact: Medium
Some users may be unfairly excluded from claiming despite being eligible.
When validators include the transaction of user1
before user2
, user1
successfully claims their slice, depleting the pool.
Consequently, user2
's transaction fails due to insufficient funds, even though they were eligible to claim.
Which transaction is going to be included first is does not depend on the time of arrival, but on the validator's choice.
Use a commit-reveal scheme or a random selection mechanism to determine claim order fairly. This reduces the ability of validators to manipulate transaction ordering for MEV.
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.