Normal behavior
createPerformance allows the organizer to define a new performance with a base BEAT reward that users receive when calling attendPerformance.
The reward is expected to be multiplied by a pass-based multiplier and safely distributed to attendees during an active performance.
Specific issue
The reward parameter is not validated for upper bounds when creating a performance.
If an excessively large baseReward is configured, the reward calculation inside attendPerformance can overflow when multiplied by the pass multiplier.
In Solidity ^0.8.x, this arithmetic overflow triggers a panic and causes the entire transaction to revert, preventing any user from successfully attending the performance.
Likelihood:
This occurs whenever an organizer configures a performance with a reward value that exceeds the safe arithmetic range once multipliers are applied.
No safeguards prevent accidental misconfiguration or malicious parameter selection.
Impact:
All calls to attendPerformance for the affected performance revert, resulting in a denial of service for participants.
Performances can become permanently unusable, disrupting protocol functionality and user trust.
This demonstrates that an excessively large baseReward causes an arithmetic overflow during reward calculation, reverting the transaction and blocking participation.
Introduce an upper bound check on reward to ensure that reward calculations remain within safe arithmetic limits even after applying the maximum multiplier.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.