Beatland Festival

First Flight #44
Beginner FriendlyFoundrySolidityNFT
100 EXP
View results
Submission Details
Impact: high
Likelihood: high
Invalid

BEAT Welcome Bonus Can Be Repeated by Transferring/Burning Passes

Root + Impact

Description

Users can exploit the BEAT welcome bonus by repeatedly buying, transferring, or burning VIP/BACKSTAGE passes, and purchasing again to get new rewards.

if (bonus > 0) {
BeatToken(beatToken).mint(msg.sender, bonus); // @> No restriction on claiming bonus repeatedly
}

Risk

Likelihood:

  • Will occur when economically rational (BEAT has value)

  • Easy for users to automate

Impact:

  • BEAT supply can be inflated maliciously

  • Devalues rewards for legitimate users

Proof of Concept

festivalPass.buyPass{value: passPrice}(VIP_PASS);
festivalPass.safeTransferFrom(user, otherUser, VIP_PASS, 1, "");
// repeat buy for bonus again

Recommended Mitigation

+ require(!bonusClaimed[msg.sender][collectionId], "Bonus already claimed");
+ bonusClaimed[msg.sender][collectionId] = true;
Updates

Lead Judging Commences

inallhonesty Lead Judge 29 days ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.