The redeemMemorabilia function performs a sequence of sensitive operations including:
Burning BEAT tokens via an external call (BeatToken(beatToken).burnFrom)
Updating internal state (currentItemId++, token mapping)
Minting ERC1155 NFTs (_mint)
Since these operations are not protected by a nonReentrant modifier, and because they interact with external contracts and user-controlled logic, this function is vulnerable to a reentrancy attack. If the attacker controls a contract with a fallback function that calls back into redeemMemorabilia, they may be able to mint multiple items before the currentItemId is incremented or the token limit is enforced.
Likelihood
burnFrom is an external call that may not be hardened.
_mint triggers ERC1155 onERC1155Received, which is potentially reentrant.
No reentrancy guard or call ordering protections.
Impact
Minting more memorabilia than allowed.
Circumventing token burn cost (BEAT).
Supply inflation and value erosion of memorabilia NFTs.
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.