Competitive Audits
First Flights
Leaderboard
Docs
Toggle theme
Sign up
Log in
All First Flights
Puppy Raffle
Submissions
AI First Flight
Puppy Raffle
AI First Flight #1
Beginner Friendly
Foundry
Solidity
NFT
EXP
AI First Flight
EXP
Nov 7th, 2026 → Nov 14th, 2026
View repo
View results
9 / 9
Submissions
Severity
Validity
Tags
Author
#1
Reentrancy in refund() allows repeated refunds before the player slot is cleared
High
Valid
[H-02] Reentrancy Vulnerabi...
coolteddy141
#2
Predictable on-chain randomness in selectWinner() lets the caller influence the winner and the puppy rarity
High
Valid
[H-03] Randomness can be gamed
coolteddy141
#3
selectWinner() calculates the prize from players.length, ignoring refunds, so it can revert and lock the raffle
High
Valid
[H-04] `PuppyRaffle::refund...
coolteddy141
#4
selectWinner() can pick a refunded address(0) entry as winner, so minting reverts and winner selection fails
High
Valid
[H-04] `PuppyRaffle::refund...
coolteddy141
#5
enterRaffle() re-scans the whole players array with a quadratic duplicate check, so entering becomes prohibitively expensive as the raffle grows
Medium
Valid
[M-01] `PuppyRaffle: enterR...
coolteddy141
#6
withdrawFees() requires the balance to equal totalFees exactly, so any extra ether locks the fees forever
Medium
Valid
[M-02] Slightly increasing ...
coolteddy141
#7
getActivePlayerIndex() returns 0 for both the player at index 0 and a non-player, so callers cannot tell them apart
Low
Valid
[L-01] Ambiguous index retu...
coolteddy141
#8
Rarity thresholds in selectWinner() give 71/25/4 instead of the intended 70/25/5 split
Low
Valid
[L-03] Participants are mis...
coolteddy141
#9
tokenURI() builds invalid JSON because the rarity value is not quoted, so marketplaces may fail to parse the metadata
Low
Invalid
coolteddy141
Previous
1
Next
Support
FAQs
Can't find an answer? Chat with us on Discord, Twitter or Linkedin.
What is Cyfrin CodeHawks?
What is a competitive audit?
How can I host a competition on CodeHawks?
How is a contest prize pool determined?
How do I get rewarded?
What is a First Flight?
Give us feedback!