The selectWinner() function is intended to mint an NFT to the winner after distributing the prize pool
The function uses _safeMint() which calls onERC721Received() on the recipient if it's a contract; a malicious contract can revert this call
Likelihood:
Requires a smart contract to win the raffle
Attacker must predict/manipulate winner selection (see H-2)
Impact:
Entire transaction reverts, raffle cannot complete
Players array is not reset, so raffle is stuck
All player funds remain locked until issue is resolved
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.