The mintRapper() function on oneShot.sol
allows users to mint an unlimited number of NFTs. Users can exploit this to stake large NFT armies, earn cred tokens, and increase odds of winning battles.
The mintRapper() function has no limit checks around supply or accounts, enabling an attacker to mint endless NFTs by repeatedly calling this.
Attackers could then stake these via stake(uint256 tokenId) on streets.sol
, minting 4 credits per NFT.
With tons of staked NFTs, odds of winning goToBattle() become almost guaranteed.
Inflation of staking reward credits
goOnStageOrBattle(uint256 _tokenId, uint256 _credBet) outcomes manipulation
Destabilized game economics
Manual Review
Introduce:
Per address mint limits
Cooldowns to control minting pace
Reasonable credit mints based on normal NFT volumes
Capping exploitable areas preserves balanced game dynamics and reliability of the battles system.
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.