The getMultiplier()
function is designed to provide reward multipliers based on pass tier ownership, with BACKSTAGE passes receiving 3x rewards, VIP passes receiving 2x rewards, and GENERAL passes receiving 1x rewards. Under normal economic logic, users who invest more heavily in the festival by purchasing multiple passes should receive proportional benefits that reflect their increased investment and commitment to the ecosystem.
However, the reward multiplier system only considers the highest tier pass owned rather than the quantity of passes purchased, meaning a user with 1 BACKSTAGE pass receives identical 3x rewards as a user with 100 BACKSTAGE passes. This creates an economic inefficiency where increased investment beyond the first pass of each tier provides no additional reward benefits, potentially discouraging larger investments and creating unclear value propositions for bulk pass purchases.
The vulnerability exists in the boolean logic where the function only checks if the user owns any passes (> 0
) rather than considering the actual quantity owned. This creates a flat reward structure that doesn't scale with investment, contradicting typical economic models where larger investments yield proportionally higher returns.
Likelihood:
The inconsistency manifests immediately whenever any user purchases multiple passes of the same tier, which is expected behavior for collectors, investors, or users seeking multiple festival experiences.
The issue affects all users who make bulk purchases or acquire multiple passes through any means, requiring no special conditions or complex scenarios to trigger the economic inefficiency.
Impact:
Economic inefficiency where users receive no additional reward benefits for increased investment beyond the first pass of each tier, potentially reducing protocol revenue from users who might otherwise purchase multiple passes for enhanced benefits.
Unclear value proposition for bulk pass purchases creates user confusion about the economic benefits of larger investments, but does not result in direct fund loss or security vulnerabilities, only suboptimal economic design that may reduce user engagement and investment incentives.
The fix implements quantity-based reward scaling that provides diminishing returns for additional passes while maintaining the base tier structure. This creates a clearer value proposition for bulk purchases, encourages increased investment in the protocol, and aligns the reward system with typical economic models where larger investments yield proportionally higher (though diminishing) returns.
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.